#include <iostream>
#include <vector>

using namespace std;

vector<int> add(vector<int> &A, vector<int> &B)
{
	if (A.size() < B.size()) return add(B, A);
	vector<int> C;
	int t = 0;
	for (int i = 0; i < A.size(); i ++ )
	{
		t += A[i];
		if (i < B.size()) t += B[i];
		C.push_back(t % 10);
		t /= 10;
	}
	if (t) C.push_back(t);
	return C;
}

int main()
{
	string a, b;//定义两个字符串
	vector<int> A, B;//定义两个可变长度的整数数组A、B
	cin >> a >> b;
	// "12345678998765432112345"
	// "123456789987654321123456789"
	for (int i = a.size() - 1; i >= 0; i -- )//a.size=>23
		A.push_back(a[i] - '0');
		//第一次循环,i=22,a[22]--'5','5'-'0'=5,a[0]---5
		//第二次循环,i=21,a[21]--'4','4'-'0'=4,a[1]---4
		//....
		//第23次循环,i=0,a[0]--'1','1'-'0'=1,a[22]---1
	for (int i = b.size() - 1; i >= 0; i -- ) 
		B.push_back(b[i] - '0');
	auto C = add(A, B);
	for (int i = C.size() - 1; i >= 0; i -- ) cout << C[i];
	cout << endl;
	return 0;
}

1 条评论

  • 1