A+B(高精度)

本文介绍了一种使用字符数组进行高精度加法计算的方法。通过将输入的数字转换为字符数组,然后转换为整型数组,利用进位原理进行相加,并存储结果到新的整型数组中。最后,从后向前输出结果,去除前导零。

A+B高精度计算:

        我的思路是:用两个字符数组来装两个需要相加的数字,s1[MAXN],s2[MAXN],然后需要定义三个整型数组,num1[MAXN], num2[MAXN], sum[MAXN],然后通过strlen计算出两个数组的长度,然后将两个字符数组转换成整型数组,这个时候,我们知道,两个数的相加减,得到的结果的长度最多最多比两个数字的最大的数字的长度大一,因此我们就能够知道结果数字的长度最多等于max(第一个数字,第二个数字)+1,然后两个数字相加减可能会产生进位,因此我们需要定义一个整型jw变量,每一循环的时候,sum[i] = num1[i]+sum2[i]+j2; jw = sum[i]/10; sum[i] %= 10; 通过这样的循环我们就把结果放进了sum数组中,因为我们放的时候是倒着放的(后面的代码部分会显示出来),而定义的整型数组的初始值都是零,因此我们需要把零去掉,最后在输出结果。

代码部分如下:
        

#include <iostream>
#include <cstring>
using namespace std;

const int MAXN = 5e2+5;
char s1[MAXN], s2[MAXN];
int num1[MAXN], num2[MAXN], sum[MAXN];

int main(){
    cin >> s1 >> s2;
    
    int len1 = strlen(s1);
    for(int i=0; i<len1; i++)
        num1[i] = s1[len1-i-1]-'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值