#include<stdio.h>
#include<string.h>
char a[10010],b[10010];
int na[10010],nb[10010];
int main()
{
scanf("%s%s",&a,&b);
int la=strlen(a),lb=strlen(b),i,j,m,n;
for(i=0;i<la;i++)
{
na[i]=a[la-1-i]-'0';
}
for(j=0;j<lb;j++)
{
nb[j]=b[lb-1-j]-'0';
}//反向将大数存在另外两个整型数组中(注意减去字符‘0’的操作)
int max=(la>lb?la:lb);
for(m=0;m<max;m++)
{
na[m]+=nb[m];
if(na[m]>=10)
{
na[m]-=10;
na[m+1]+=1;
}
}
for(m=max+10;m>=0;m--)
{
if(na[m]!=0)//消去前导为0的情况。
{
for(;m>=0;m--)/*由于相加后,不知道新的大数的位数,所以for循环里面的第一个位置没有限制。*/
{
printf("%d",na[m]);
}break;
}
}
return 0;
}
```
大整数加法C版
最新推荐文章于 2024-07-25 11:35:59 发布