C语言实现两个大整数相加

本文详细介绍了如何使用C语言实现两个大整数的相加操作,涉及到了大整数的存储、遍历及进位逻辑,适合初学者提升算法理解。
摘要由CSDN通过智能技术生成

C语言实现两个大整数相加


大家都知道,long long int的范围最大存储(9223372036854775807)可以大约记忆为92后面跟17个0,共19位数。
超过long long int范围的数怎么运算?
话不多话看代码
99+99 = 198 位数是3
999+99 = 1098 位数是4
11+22 = 33 位数是2
当最高位有进位时,和的长度= 两个加数中较长的加数的长度+1
当最高位没有进位时,和的长度 = 两个加数中较长的加数的长度
只需要判断两个加数的最高位有没有进位,就能确定和的长度了
我的做法是把两个数,放到字符数组中,然后反转一下,
数的高位在数组后面的位置,低位在数组前面位置。
这样下标从0往上加有进位就加到下一位上,这样,递推就出来了。最后输出和的时候倒着输出就可以了。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#define pf printf
#define sf scanf
#define pc putchar
using namespace std;
char add1[10000],add2[10000],sum[10000];
int add1len,add2len,sumlen;
void calculater(){
   
    int carry 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值