#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//两个大数相加
char* add(char *s1,char *s2,char *c)
{
char *s=c;
int i=strlen(s1)-1,j=strlen(s2)-1,k=0;
int flag=0;
int sum;
for(;i>=0&&j>=0;i--,j--,k++)
{
sum=(s1[i]-'0')+(s2[j]-'0')+flag;
(flag=sum>9)?(c[k]=sum%10+'0'):(c[k]=sum+'0');
}
for(;i>=0;i--,k++)
{
sum=(s1[i]-'0')+flag;
(flag=sum>9)?(c[k]=sum%10+'0'):(c[k]=sum+'0');
}
for(;j>=0;j--,k++)
{
sum=(s2[j]-'0')+flag;
(flag=sum>9)?(c[k]=sum%10+'0'):(c[k]=sum+'0');
}
if(flag) c[k++]='1';
c[k]=0;
strrev(s);
return s;
}
void main()
{
char *s1="66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666";
char *s2="545986525889653998568835585599721202580552058888505568798314255555000555878943698741230254612887896124674758";
char sum[1000];
add(s1,s2,sum);
puts(sum);
}
![]()