题目背景
无
题目描述
高精度加法,相当于a+b problem,不用考虑负数.
输入格式
分两行输入。a,b<=10^{500}
输出格式
输出只有一行,代表a+b的值
输入输出样例
输入 #1
1
1
输出 #1
2
答案(在纸上模拟17903+6397)
#include <stdio.h>
#include<string.h>
int main(){
char a[500],b[500];
scanf("%s",a);
scanf("%s",b);
int A[500]={0},B[500]={0};
int result[500]={0};
int i,j;
for (i=strlen(a)-1,j=0;j<strlen(a);i--,j++){
A[j]=a[i]-'0';
}
for (i=strlen(b)-1,j=0;j<strlen(b);i--,j++){
B[j]=b[i]-'0';
}
result[0]=(A[0]+B[0])%10;
int longer=(strlen(a)>strlen(b)?strlen(a):strlen(b));
for (i=1;i<=longer;i++){
if (A[i-1]+B[i-1]>=10||(A[i-1]+B[i-1]==9&&result[i-1]==0)){
result[i]=((A[i]+B[i])%10+1)%10;
}
else result[i]=(A[i]+B[i])%10;
}
if ((result[longer])!=0)
{
printf("%d",result[longer]);
}
for (i=longer-1;i>=0;i--){
printf("%d",result[i]);
}
return 0;
}