九度OJ 1003:A+B
- 题目描述:
-
给定两个整数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
思路:
需要用字符串读取数据,同时要注意和的范围可能超出int表示范围,所以建议用字符串或long long表示。
代码:
#include <stdio.h> #include <string.h> int praseStr(char s[20]) { int a = 0; int i; for (i=0; i<strlen(s); i++) { if(s[i] == '-' || s[i] == ',') continue; a = a*10 + s[i]-48; } if(s[0] == '-') a = -a; //printf("%d\n", a); return a; } int main(void) { char sa[20], sb[20]; int a, b; while (scanf("%s%s", sa, sb) != EOF) { a = praseStr(sa); b = praseStr(sb); printf("%d\n", a+b); } return 0; } /************************************************************** Problem: 1003 User: liangrx06 Language: C Result: Accepted Time:0 ms Memory:912 kb ****************************************************************/
编程算法爱好者。