大数计算器概念c语言,用C语言求两个超大整数的和

用C语言求两个超大整数的和

在生活中,我们经常需要计算非常大的数,但是任何一种计算器都有计算范围,一旦超过计算范围就会有精度的损失。或许有同学认为我们可以通过程序来解决,比如对于C语言来说,我们定义一个long long型的数据变量,这样就可以计算两个超大整数的和了。但是我们都知道,long long型表示的最大范围为9223372036854775807,最小值为-9223372036854775808,这才是20多位而已,假如我们需要计算两个均为两百位数的超大整型数的和,那我们该如何解决呢?

答案其实很简单,其实也是用程序来解决,只不过此时就不能简单定义两个变量计算结果了,小编今天碰到一道类似题,特意在此分享解决此问题的代码:

#include

#include

int main()

{

char arr1[201],arr2[201];

printf("请输入加数:");

scanf("%s",&arr1);

printf("请输入另一个加数:");

scanf("%s",&arr2);

int len1=strlen(arr1);

int len2=strlen(arr2);

int i;

int a[201]={0};int b[201]={0};int sum[202]={0};

//转换

int j=0;

for(i=len1-1;i>=0;i--)

{

a[j++]=arr1[i]-'0';

}

j=0;

for(i=len2-1;i>=0;i--)

{

b[j++]=arr2[i]-'0';

}

//求和

int max=(len1>len2)?len1:len2;

for(i=0;i

{

sum[i]=a[i]+b[i];

}

//进位操作处理

for(i=0;i

{

if(sum[i]>=10)

{

sum[i+1]++;

sum[i]-=10;

}

}

//输出结果

printf("计算结果为:");

for(i=max-1;i>=0;i--)

{

printf("%d",sum[i]);

}

return 0;

}

这段代码有很大的完善空间,欢迎大家留言批评讨论

这是加法的计算代码,大家可以尝试写一写减法的相关代码;有能力的可以写写乘法和除法的(确实比较难);

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值