题目描述
计算两个大整数的和。大整数是指超过了c,c++表示范围的整数,如1234567890000000000000000000
输入格式
输入包括两个大整数,每个大整数不超过100位,用空格或者换行隔开
输出格式
输出两个大整数的和
输入样例
222222222222222222222
333333333333333333333
输出样例
555555555555555555555
#include<iostream>
using namespace std;
int main()
{
string s1, s2,s3;
cin >> s1 >> s2;
int l1 = s1.length(), l2 = s2.length();
if (l1 < l2)
{
swap(s1, s2);
swap(l1, l2);
}// s1 的长度大于等于 s2的长度
bool carry = 0;
s2.insert(0, l1 - l2, '0');
int op1, op2,ans;
s3.resize(l1);
for (int i = l1-1; i >= 0; i--)
{
op1 = s1[i] - '0';
op2 = s2[i] - '0';
ans = op1 + op2;
if (carry)
ans++;
if (ans >= 10)
carry = 1;
else carry = 0;
s3[i] = ans % 10 + '0';
}
if (carry)
cout << 1 << s3;
else cout << s3;
return 0;
}