Description
xiaoT上小学了,今天他刚掌握了整数的加法运算,于是回家向他的姐姐xiaoM炫耀他是多么的聪明(?),xiaoM不胜其烦,给xiaoT出了一道加法题,但是这道题跟xiaoT在学校学的有些不一样,把他给难住了,于是他像善于编程的你求救。 题目是这样的:给你两个整数a,b,计算a+b的值,你可以假设整数a,b的长度小于1000位。(a,b都大于0)
Input
输入有多组测试数据,你的程序必须度到EOF. 每组测试数据有两个正整数a,b,用空格隔开。
Ouput
输出a+b的值。
Sample Input
10 20
123 456
456456789126498795648965645646561654654 46545621316549871231620046504685016546500
Sample Output
30
579
47002078105676370027269012150331578201154
Hint
Java语言不妨用java.math.BigInteger类.
#include#include int main(){ char n1[1000]={'0'},n2[1000]={'0'}; int result[1000]={0},t1[1000]={0},t2[1000]={0}; int len,len1,len2; int i,j; while(scanf("%s %s",&n1,&n2)!=EOF){ len1=strlen(n1); len2=strlen(n2); if(len1>len2){ len=len1; }else{ len=len2; } for(i=0,j=len1-1;j>=0;i++,j--){ t1[i]=n1[j]-'0'; } for(i=0,j=len2-1;j>=0;i++,j--){ t2[i]=n2[j]-'0'; } for(i=0;i 9){ result[i+1]++; result[i]-=10; } } if(result[len]>0){ len++; } for(i=len-1;i>=0;i--){ printf("%d",result[i]); } printf("\n"); for(i=0;i<1000;i++){ n1[i]='0'; n2[i]='0'; result[i]=0; t1[i]=0; t2[i]=0; } } return 0;}