您的位置:首页 > 其它

hdoj3787 大数A+B

2015-07-23 15:35 267 查看

/*A+B

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 3629 Accepted Submission(s): 2069

Problem Description

给定两个整数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

Source

浙大计算机研究生复试上机考试-2010年

代码:*/

<span style="font-size:18px;">#include <stdio.h>  
#include <string.h>  
int main()  
{  
    int len1,len2;  
    long long  sum1,sum2;  
    char str1[20],str2[20];  
    while(scanf("%s %s",str1,str2)!=EOF)  
    {  
        len1=strlen(str1);  
        len2=strlen(str2);  
        if(str1[0]=='-')  
        {  
            sum1=0;  
            for(int i=1;i<len1;i++)  
            {  
                if(str1[i]!=',')  
                sum1=sum1*10+str1[i]-'0';  
            }  
            sum1=-sum1;  
        }  
        else  
        {  
            sum1=0;  
            for(int i=0;i<len1;i++)  
            {  
                if(str1[i]!=',')  
                sum1=sum1*10+str1[i]-'0';  
            }  
        }  
        if(str2[0]=='-')  
        {  
            sum2=0;  
            for(int i=1;i<len2;i++)  
            {  
                if(str2[i]!=',')  
                sum2=sum2*10+str2[i]-'0';  
            }  
            sum2=-sum2;  
        }  
        else          {  
            sum2=0;  
            for(int i=0;i<len2;i++)  
            {  
                if(str2[i]!=',')  
                sum2=sum2*10+str2[i]-'0';  
            }  
        }  
        printf("%lld\n",sum1+sum2);  
        memset(str1,0,sizeof(str1));  
        memset(str2,0,sizeof(str2));  
    }  
    return 0;  
}  </span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: