算法提高 大数加法
时间限制:1.0s 内存限制:256.0MB
问题描述
输入两个正整数a,b,输出a+b的值。
输入格式
两行,第一行a,第二行b。a和b的长度均小于1000位。
输出格式
一行,a+b的值。
样例输入
4
2
2
样例输出
6
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 char a[1001],b[1001]; 6 int s[1001],d[1001]; 7 scanf("%s%s",&a,&b); 8 memset(s,0,1001*sizeof(int)); 9 memset(d,0,1001*sizeof(int)); 10 for(int i=strlen(a)-1,j=0; i>=0; i--) 11 { 12 s[j++]=a[i]-'0'; 13 } 14 for(int i=strlen(b)-1,j=0; i>=0; i--) 15 { 16 d[j++]=b[i]-'0'; 17 } 18 for(int i=0; i<1001; i++) 19 { 20 s[i]+=d[i]; 21 if(s[i]>=10) 22 { 23 s[i]=s[i]-10; 24 s[i+1]++; 25 } 26 } 27 int i; 28 for( i=1000; i>=0; i--) 29 if(s[i]) 30 break; 31 for(int j=i;j>=0;j--) 32 printf("%d",s[j]); 33 return 0; 34 }