题目描述:
给定两个整数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 <iostream>
#include <string>
using namespace std;
int main(){
string s1,s2;
int i,j;
while(cin>>s1>>s2){
int a[20]={0},b[20]={0};
int n1=0,n2=0;
int num1=0,num2=0,num=0;
int flg1=0,flg2=0;
if(s1[0]=='-')
flg1=1;
if(s2[0]=='-')
flg2=1; //判断正负
for(i=0;i<s1.length();i++){
if(s1[i]!=',' && s1[i]!='-'){
a[n1]=s1[i]-48;
n1++;
}
}
for(i=0;i<s2.length();i++){
if(s2[i]!=',' && s2[i]!='-'){
b[n2]=s2[i]-48;
n2++;
}
}
for(i=0;i<n1;i++)
num1=num1*10+a[i];
for(i=0;i<n2;i++)
num2=num2*10+b[i];
if(flg1)
num1=0-num1;
if(flg2)
num2=0-num2;
num=num1+num2;
cout<<num<<endl;
}
return 0;
}
注意:
当char赋值给int是,要减去48,开始没有加上,导致找了好久的错