本文主要详细介绍了C语言中大数加法的计算方法。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。
本文分享C语言计算大数加法的具体代码,供大家参考。具体内容如下
问题描述
输入两个整数A和B,输出这两个整数的和。A和B都不超过100位。
算法描述
因为A和B都很大,所以不能用语言中的标准数据类型直接存储。对于这类问题,一般用数组来处理。
定义一个数组A,A[0]用来存储A的位,A[1]用来存储A的十位,以此类推。你也可以用数组B来存储B。
计算c=a b时,先将A[0]和B[0]相加。如果有进位,则将进位(即和的十位数)存储在R中,将和的个位数存储在C[0]中,即C[0]等于(A [0] B [0])。然后计算A[1]和B[1]的和。这时也要从低位开始把R的值加起来,即C[1]应该是A[1],B[1]和R的和,如果有另一个进位,新的进位仍然可以存放在R中,sum的位可以存放在C[1]中。以此类推,可以找到C的所有位。
最后输出c。
输入格式
包括两个输入行,第一行是非负整数A,第二行是非负整数B.两个整数都不超过100位,两个数的最高位都不是0。
输出格式
输出一行,表示a b的值。
样例输入
20100122201001221234567890
2010012220100122
样例输出
20100122203011233454668012
#includeiostream
# includecstring
使用命名空间std
int main(void)
{
int a[401]={ 0 },b[401]={ 0 },c[401]={ 0 };
int alen,blen,clen
char ST[400];
scanf('%s ',ST);
alen=strlen(ST);
for(int I=alen;I=1;我-)
{
a[I]=ST[alen-I]-' 1 ' 1;
}
scanf('%s ',ST);
blen=strlen(ST);
for(int j=blen;j=1;j -)
{
b[j]=ST[blen-j]-' 1 ' 1;
}
clen=阿伦布伦?阿伦:布伦;
for(int I=1;i=clen我)
{
c[I]=a[I]b[I];
}
for(int I=1;i=clen我)
{
如果(c[i]=10)
{
c[I 1]=c[I 1]c[I]/10;
c[I]=c[I]% 10;
}
}
if (c[clen 1]!=0)
clen
for(int I=clen;I=1;我-)
{
printf('%d ',c[I]);
}
printf(' \ n ');
返回0;
}
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。