1003 A+B(2010年浙江大学计算机及软件工程研究生机试真题)

来源:互联网 发布:企业办公软件 编辑:程序博客网 时间:2024/05/17 01:41
题目描述:
给定两个整数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
//1003 A+B#include<iostream>#include<cstring>using namespace std;int main(){char s1[12],s2[12];int   x,y;int a[20],b[20],i,j,len1,len2,k,t;bool flag1,flag2;while(cin>>s1>>s2){//cout<<s1<<endl<<s2<<endl;    len1=strlen(s1);    len2=strlen(s2);    j=0;    x=y=0;    flag1=flag2=false;       for(i=0;i<len1;i++)    {    if(s1[i]==',')continue;    if(s1[i]=='-'){   flag1=true;   continue;}         a[j++]=s1[i]-'0';    }    for(i=j-1;i>=0;i--)    {    t=1;        for(k=0;k<j-i-1;k++)    {    t*=10;    }    x+=t*a[i];    }        if(flag1)x=-x;    j=0;    for(i=0;i<len2;i++)    {    if(s2[i]==',')continue;    if(s2[i]=='-'){flag2=true;continue;}     b[j++]=s2[i]-'0';    }    for(i=j-1;i>=0;i--)    {    t=1;    for(k=0;k<j-i-1;k++)    {    t*=10;    }    y+=t*b[i];    }    if(flag2)y=-y;    cout<<x+y<<endl;}return 0;} 


0 0
原创粉丝点击