题目:实现两个较大整数相加
主要回顾一下大整数相加的思路和方法
大整数相加主要有三个步骤:
一、用字符串输入两个较大整数(因为是较大整数,所以用字符串而不用数组,这样更好储存)
二、将存入的数字逆转并存入两个新的数组crr,drr中(逆转是为了防止加法运算时两个数位数不齐,以简化运算)
三、将逆转后的两个数组一一相加并存入sum中,并实现 进位问题
四、倒序输出sum得到结果
具体实现代码如下:
//大整数加法
#include<iostream>
#include<string>
#include<string.h>//用字符串函数不要忘了头文件
using namespace std;
int main() {
string arr;//在定义变量的同时要初始化
string brr;//字符串的定义不是char 而是string 而且没有[]不需要初始化
int crr[200] = { 0 };
int drr[200] = { 0 };
int i;
cin >> arr;
cin >> brr;
int n1 = arr.size();
int n2 = brr.size(); //一
for (i = 0; i < n1;i++) {
crr[i] = arr[n1 - 1 - i] - '0';
}
for (i = 0; i < n2; i++) {
drr[i] = brr[n2 - 1 - i] - '0';//注意字符串与数组之间的转换
} //二
int sum [1000] = { 0 };
int t;
if (n1 > n2) {
t = n1;
}else {
t = n2;
}
for (i = 0; i < t; i++) {
if (sum[i]+crr[i] + drr[i] <= 9) {
sum[i] =sum[i] +crr[i] + drr[i];
}
else {
sum[i] = (sum[i]+crr[i] + drr[i])%10;
sum[i + 1] += 1;
}
} //三
for (i = 0; i < t; i++) {
cout << sum[t - 1 - i] ; //四
}
return 0;
}