- 题目描述:
-
给定两个整数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<cstring>
using namespace std;
int change(string s){
int num=0,i;
if(s[0]!='-'){
if(s.size()<=3) {
for(i=0;i<s.size();i++){
num=num*10+(s[i]-'0');
}
}
else if(s.size()<=7){
int pos=s.find(',');
for(i=0;i<pos;i++){
num=num*10+(s[i]-'0');
}
num*=1000;
int num1=0;
for(i=pos+1;i<s.size();i++){
num1=num1*10+(s[i]-'0');
}
num+=num1;
}
else {
int pos=s.find(',');
for(i=0;i<pos;i++){
num=num*10+(s[i]-'0');
}
int num1=0,num2=0;
num*=1000000;
for(i=pos+1;i<pos+4;i++){
num1=num1*10+(s[i]-'0');
}
for(i=pos+5;i<s.size();i++){
num2=num2*10+(s[i]-'0');
}
num=num+num1*1000+num2;
}
}
else {
s=s.substr(1,s.size()-1);
if(s.size()<=3) {
for(i=0;i<s.size();i++){
num=num*10+(s[i]-'0');
}
}
else if(s.size()<=7){
int pos=s.find(',');
for(i=0;i<pos;i++){
num=num*10+(s[i]-'0');
}
num*=1000;
int num1=0;
for(i=pos+1;i<s.size();i++){
num1=num1*10+(s[i]-'0');
}
num+=num1;
}
else {
int pos=s.find(',');
for(i=0;i<pos;i++){
num=num*10+(s[i]-'0');
}
int num1=0,num2=0;
num*=1000000;
for(i=pos+1;i<pos+4;i++){
num1=num1*10+(s[i]-'0');
}
for(i=pos+5;i<s.size();i++){
num2=num2*10+(s[i]-'0');
}
num=num+num1*1000+num2;
}
num=0-num;
}
return num;
}
int main(){
string a,b;
while(cin>>a>>b){
int c=change(a)+change(b);
cout<<c<<endl;
}
return 0;
}