题目描述
给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。
现在请计算A+B的结果,并以正常形式输出。
输入
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。
输出
请计算A+B的结果,并以正常形式输出,每组数据占一行。
样例输入
-234,567,890 123,456,789
1,234 2,345,678
样例输出
-111111101
2346912
思路:用一个函数将输入的字符串转换为对应的整数。
#include <cstdio>
#include <cstring>
int trans(const char s[], int len);
int main() {
char a[13], b[13];
int len1, len2;
long long A, B;
while (scanf("%s%s", a, b) != EOF) {
len1 = strlen(a);
len2 = strlen(b);
A = trans(a, len1);
B = trans(b, len2);
printf("%lld\n", A + B);
}
}
int trans(const char s[], int len) {
int k = 1, num = 0;
for (int i = len - 1; i >= 0; i--) {//从尾往头读
if (s[i] >= '0' && s[i] <= '9') {
num += (s[i] - '0') * k;
k *= 10;
}
}
if (s[0] == '-') {//注意首位的负号
num *= -1;
}
return num;
}