IBOCE 第一天练习
A+B Problem(高精)
题目描述
高精度加法,相当于 a+b problem,不用考虑负数。
输入格式
分两行输入。a,b \leq 10^{500}$。
输出格式
输出只有一行,代表 a+b 的值。
样例 #1
样例输入 #1
1
1
样例输出 #1
2
样例 #2
样例输入 #2
1001
9099
样例输出 #2
10100
#include<stdio.h>
#include<string.h>
char S1[500],S2[500]; //数的输入(用字符数组)
int a[500],b[500],c[500]; //A+B=C
int main ()
{
int i,j,k,l;
int length_A,length_B,length_C; //数的长度
scanf("%s",S1); //高精度的数的输入
scanf("%s",S2);
length_A=strlen(S1);
length_B=strlen(S2);
for(i=0;i<length_A;i++) //个、十、百...对应数组下标1、2、3
a[length_A-i]=S1[i]-'0';
for(j=0;j<length_B;j++)
b[length_B-j]=S2[j]-'0';
if(length_A>=length_B) //和'C'最大的长度
length_C=length_A+1;
else
length_C=length_B+1;
for(k=1;k<=length_C;k++)
{
c[k]+=a[k]+b[k];
c[k+1]=c[k]/10;
c[k]=c[k]%10;
}
if(c[length_C]==0&&length_C>0) //删除前导'0'
length_C=length_C-1;
for(l=length_C;l>0;l--) //和'C'的输出
printf("%d",c[l]);
return 0;
}
``