九度OJ —— 1003

来源:互联网 发布:蚁群算法代码 编辑:程序博客网 时间:2024/05/16 23:39

题目描述:
给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号”,”隔开。
现在请计算A+B的结果,并以正常形式输出。

输入:
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。

输出:
请计算A+B的结果,并以正常形式输出,每组数据占一行。

样例输入:

-234,567,890 123,456,7891,234 2,345,678

样例输出:

-1111111012346912
#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,开始没有加上,导致找了好久的错