c语言模拟计算器_大整数加法算法(C语言基础)

/*

超大整数加法运算

普通计算器最多支持十几位数加法运算 本程序支持一万位数加法运算

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;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值