当数字足够大的时间,用数组实现大数的运算。
参考代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
int a[100],b[100],c[200];
char str1[100],str2[100];
int i,j,k,index,incre=0;
printf("input the first string:");
scanf("%s",str1);
index=0;
for(i=strlen(str1)-1;i>=0;i--)
{
a[index]=str1[i]-'0';
index++;
}
printf("input the second string:");
scanf("%s",str2);
index=0;
for(i=strlen(str2)-1;i>=0;i--)
{
b[index]=str2[i]-'0';
index++;
}
index=0;
while(index<strlen(str1) && index<strlen(str2))
{
c[index]=(a[index]+b[index]+incre)%10;
incre=(a[index]+b[index]+incre)/10;
index++;
}
if(index==strlen(str1) && index<strlen(str2))
{
for(j=index;j<strlen(str2);j++){
c[index]=(b[j]+incre)%10;
incre=(b[j]+incre)/10;
index++;
}
}
if(index==strlen(str2) && index<strlen(str1))
{
for(j=index;j<strlen(str1);j++){
c[index]=(a[j]+incre)%10;
incre=(a[j]+incre)/10;
index++;
}
}
if(incre)
{
c[index]=incre;
index++;
}
for(i=index-1;i>=0;i--)
printf("%d",c[i]);
putchar('\n');
return 0;
}