大数加法
两个大数相加,采用数组实现
分析
- 分别用string输入两个大数
- 倒置两个数组到int数组中,方便处理相加
- 函数add返回值为结果的长度
#include <iostream>
#include <string>
using namespace std;
#define MAX 1000
int add(string num1, string num2, int sum[]){ // 接受两个输入string作为长整数
int len1 = num1.size();
int len2 = num2.size();
int len = len1 > len2 ? len1 : len2;
int num22[MAX] = {0}; //用来存放的num2
for(int i = len1 - 1, j = 0; i >= 0; i--, j++)// 将num1反转,方便加法运算
sum[j] = num1[i] - '0';
for(int i = len2 - 1, j = 0; i >= 0; i--, j++)//// 将num2反转,方便加法运算
num22[j] = num2[i] - '0';
for(int i = 0; i < len; i++){
sum[i] += num22[i];
if(sum[i] > 9){
sum[i] -= 10;
sum[i + 1]++;
}
}
if(sum[len] > 0) len++;
return len;//返回值为结果的长度
}
int main(){
string num1, num2;
int sum[MAX];
while(cin >> num1 >> num2){
int len = add(num1, num2, sum);
//cout << len << endl;
cout << "sum is : ";//cout << "====================" << endl;
for(int i = len - 1; i >= 0; i--){
cout << sum[i];
}
cout << endl;
}
return 0;
}