给定两个正整数(不含前导 0),计算它们的和。
输入格式
共两行,每行包含一个整数。
输出格式
共一行,包含所求的和。
数据范围
1≤整数长度≤100000
输入样例:
12 23
输出样例:
35
思路
本题的思路是将输入的两个加数,通过拆分,存入数组中,然后使用从各位开始最高位相加,加法的核心步骤即为 两个加数的对应位数的数值相加后加上低一位计算的进位 。
这里使用了
代码示例:
#include#include using namespace std; vector add( vector &A, vector &B) { vector C; int t = 0; for (int i = 0; i < A.size() || i < B.size(); i ++) { if ( i < A.size()) t += A[i]; if ( i < B.size()) t += B[i]; C.push_back( t % 10); t /= 10; } if (t) C.push_back(1); return C; } int main() { string a , b; vector A, B; cin >> a >> b; for ( int i = a.size() - 1; i >= 0 ; i --) A.push_back(a[i] - '0'); 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]; return 0; }



