题目描述
求两个不超过200位的非负整数的和。
输入INPUT:
输入格式
有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。
输入样例
22222222222222222222
33333333333333333333
输出OUTPUT:
输出格式
一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
输出样例
55555555555555555555
方法一:string实现
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string a, b, ans;
cin >> a >> b;
int a_len = a.length();
int b_len = b.length();
int ss = min(a_len, b_len);
int ll = max(a_len, b_len);
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
while(a_len<b_len){
a+='0';
a_len++;
}
while(a_len>b_len){
b+='0';
b_len++;
}
//做加法运算,因为是字符,所以a[1]+b[i],会多一个‘0’的ASCII
for (int i = 0; i < ll; i++) {
ans+= a[i] + b[i]-'0' ;
}
//进位,满10进一
for (int i = 0; i < ll + 1; i++) {
if