大数加法

大数加法

两个大数相加,采用数组实现

分析

  1. 分别用string输入两个大数
  2. 倒置两个数组到int数组中,方便处理相加
  3. 函数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;

}

原文地址:https://www.cnblogs.com/zhuobo/p/10230750.html