/*
超大整数加法运算
普通计算器最多支持十几位数加法运算 本程序支持一万位数加法运算
C语言模拟手动传统算法
*/
#include
int main() {
int a[10000];
int b[10000];
int sum[10001];
char s1[10000];
char s2[10000];
int s1len;
int s2len;
printf("输入被加数:");
gets(s1);
s1len=strlen(s1);
printf("输入加数:");
gets(s2);
s2len=strlen(s2);
int n= s1len>s2len ? s1len+1 : s2len;
for( int i=s1len-1,j=10000-1; i>=0 && j>=0; i--,j--)
{ a[j]=s1[i]-'0'; }
for( int i=s2len-1,j=10000-1; i>=0 && j>=0; i--,j--) { b[j]=s2[i]-'0'; }
//模拟传统手动算法
for( int i=9999,j=9999, k=10000,z=0;
z < n && i>=0 && j>=0 && k>=0;
i--,j--,z++ )
{
int tem1=a[i]+b[j];
int tem2=(tem1-(tem1%10))/10; sum[k--]+=tem1%10; sum[k]+=tem2;
}
printf("结果为:");
n= sum[10000-n]==0 ? n-1:n;
for(int i=10001-n-1 ; i<10001; i++)
{
printf("%d",sum[i]);
}
printf("");
return 0;
}