特大整数的精确相加
#include<stdio.h>
#include<string.h>
main()
{
char a[101],b[101];
int m,n,i,j,k;
scanf("a = %s",a);
scanf("b = %s",b);
m=strlen(a);
k=n=strlen(b);
if(m>k) k=m;
a[k+1]=0;
for(i=0;i<k;i++)
a[k-i]=a[m-i-1];
for(i=0;i<=k-m;i++)
a[i]='0';
for(i=0;i<=k;i++)
b[k-i]=b[n-i-1];
for(i=0;i<=k-n;i++)
b[i]='0';
j=0;
for(i=0;i<k;i++)
{
j=(a[k-i]+b[k-i]+j-96);
a[k-i]=j%10+48;
j=j/10;
}
a[0]=j+48;
if(a[0]=='0')
printf("%s\n",a+1);
else
printf("%s\n",a);
}
本文探讨如何使用C语言处理特大整数的精确相加问题,涵盖算法设计与实现细节。

被折叠的 条评论
为什么被折叠?



