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]-'

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

被折叠的 条评论
为什么被折叠?



