C++实现大整数加法

本文详细介绍了如何使用C++实现大整数的加法操作。通过定义长度为255的字符数组存储大整数,从后向前逐位相加,并处理进位情况。在遇到不同长度的大整数时,会将较长数字的剩余部分直接加入结果。在实际编程过程中,还需要考虑前导0的问题,以确保正确输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大整数加法可谓是学习C++语言的一个里程碑。那么,如何在C++简单易懂地实现大整数加法呢?

 概念思路

假定这两个十进制的大整数位数不超过255位。

那么,可以定义两个长度为255的字符数组(num1,num2),以换行符作为分界线,依次读入。

最后,从两个数组的最后一位开始,一位位地向前相加,进位,直到两个数组都被读完或一个数组被读完(此时,更长的一个数组剩下的数字直接输出)。

例如:

num1[5]={'1','2','3','4','5'};

num2[5]={'2','3','4','5','6'};

定义减数i=0,while(i<=strlen(num1)&&i<=strlen(num2))时,对[长度-i-1]所对应的那一个数字进行操作。

如果,两数长度不一的话:

num1[5]={'1','2','3','4','5'};

num2[2]={'5','6'};

那么在i=3的时候,i<strlen(num2)将为false,跳出循环。

 

字符的相加

先来了解一下二字符相加的结果(ASCII码,已知者可跳过)。

不仅是在C++中,每个字符在ASCII下都对应着一个数字。比如说,97表示'a',65表示'A',48表示'0'。

在本例中,用到的是字符'0'-'9',对应的数字也就是48-57。

若有两个字符a和b,a='0',b='0',

那么,a+b返回的结果就是48+48=96(因为'0'是48)。若想使结果的ASCII总和就是数字之和,那么显而易见,应该再减去96。

在这个操作后,

'9'+'0'=57+48=105,减去96就是9,即9+0;

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值