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);