HDU 3787 A+B(字符串进制转换)

来源:互联网 发布:sunny crown 人工智能 编辑:程序博客网 时间:2024/06/06 05:06

A+B

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4720    Accepted Submission(s): 2690


Problem Description
给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。
现在请计算A+B的结果,并以正常形式输出。
 

Input
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。
 

Output
请计算A+B的结果,并以正常形式输出,每组数据占一行。
 

Sample Input
-234,567,890 123,456,7891,234 2,345,678
 

Sample Output
-1111111012346912
 
思路:
直接先把逗号去掉,然后把剩余字符串转到10进制加上符号判断就好了!
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn = 100 + 10;//char s11[maxn],s22[maxn];char s1[maxn],s2[maxn];int main(){    while(scanf("%s%s",s1,s2) == 2){        int cnt = 0;        int len1 = strlen(s1);        int len2 = strlen(s2);        for (int i = 0; i < len1; ++i) if (s1[i] != ',')s1[cnt++] = s1[i];        s1[cnt] = 0;        len1 = cnt;        cnt = 0;        for (int i = 0; i < len2; ++i) if (s2[i] != ',')s2[cnt++] = s2[i];        s2[cnt] = 0;        len2 = cnt;        int v1 = 0,v2 = 0;        int i=0;        if (s1[i] == '-' || s1[i] == '+')i = 1;        else i = 0;        for (; i < len1; ++i) v1 = v1 * 10 + s1[i]-48;        if (s1[0] == '-')v1=-v1;        i = 0;        if (s2[i] == '-' || s2[i] == '+')i = 1;        else i = 0;        for (; i < len2; ++i) v2 = v2 * 10 + s2[i]-48;        if (s2[0] == '-')v2=-v2;        printf("%d\n",v1+v2);    }    return 0;}


0 0
原创粉丝点击