题目描述
实现一个加法器,使其能够输出a+b的值。
输入描述:
输入包括两个数a和b,其中a和b的位数不超过1000位。
输出描述:
可能有多组测试数据,对于每组数据, 输出a+b的值。
示例1
输入
2 6 10000000000000000000 10000000000000000000000000000000
输出
8 10000000000010000000000000000000
代码:
#include<stdio.h>
#include<string.h>
int change(char str[],int digit[]){
int len=strlen(str);
for(int i=0;i<len;i++){
digit[i]=str[len-1-i]-'0';
}
return len;
}
int main(){
char str1[1010],str2[1010];
while(scanf("%s%s",str1,str2)!=EOF){
int a[1010]={0},b[1010]={0};
int n1=change(str1,a);
int n2=change(str2,b);
int n=n1>=n2?n1:n2;
int k=0;
for(int i=0;i<n;i++){
int t=(a[i]+b[i]+k)/10;
a[i]=(a[i]+b[i]+k)%10;
k=t;
}
if(k!=0)
a[n++]=k;
for(int i=n-1;i>=0;i--)
printf("%d",a[i]);
printf("\n");
}
return 0;
}