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的结果,并以正常形式输出。
现在请计算A+B的结果,并以正常形式输出。
Input
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。
Output
请计算A+B的结果,并以正常形式输出,每组数据占一行。
Sample Input
-234,567,890 123,456,789 1,234 2,345,678
Sample Output
-111111101 2346912
思路:
直接先把逗号去掉,然后把剩余字符串转到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;
}