无符号加法
输入a, b输出a + b(max(a, b) <= 10100)
#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <cstdlib> #include <map> #include <set> #include <vector> #include <queue> #include <cmath> #include <cctype> #include <string> #include <cfloat> #include <stack> #include <cassert> #include <bitset> using namespace std; const int N = 6000; int a[N], b[N], c[N], x, lenA, lenB, len; char strA[N], strB[N]; int main() { scanf("%s%s", strA, strB); lenA = strlen(strA); lenB = strlen(strB); for(int i = 0 ; i < lenA ; i ++) { a[lenA - i] = strA[i] - '0'; } for(int i = 0 ; i < lenB ; i ++) { b[lenB - i] = strB[i] - '0'; } for(len = 1 ; len <= lenA || len <= lenB ; len ++) { c[len] = a[len] + b[len] + x; x = c[len] / 10; c[len] %= 10; } c[len] = x; while(c[len] == 0) { len --; if(len == 0) { putchar('0'); return 0; } } for(int i = len ; i >= 1 ; i --) { putchar(c[i] + '0'); } }