4 条题解
-
1
#include <bits/stdc++.h> using namespace std; const int N = 1010; int a[N], b[N]; int al, bl; void add(int a[], int &al, int b[], int &bl) { int t = 0; al = max(al, bl); for (int i = 0; i < al; i++) { t += a[i] + b[i]; a[i] = t % 10; t /= 10; } if (t) a[al++] = 1; if(al > 1 && a[al - 1] == 0) al--; }//到底是改用while还是if有待考究 int main() { int T; cin >> T; for (int k = 1; k <= T; k++) { memset(a, 0, sizeof(a)); memset(b, 0, sizeof(b)); al = 0; bl = 0; string x, y; cin >> x >> y; for (int i = x.size() - 1; i >= 0; i--) a[al++] = x[i] - '0'; for (int i = y.size() - 1; i >= 0; i--) b[bl++] = y[i] - '0'; // 执行加法 add(a, al, b, bl); cout << "Case " << k << ":" << endl; cout << x << " + " << y << " = "; for (int i = al - 1; i >= 0; i--) cout << a[i]; cout << endl; if (k < T) cout << endl; } return 0; }
有大佬用一个数组就可以存储,用空间换时间,但是我比较笨,不会简便。
信息
- ID
- 165
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 1474
- 已通过
- 177
- 上传者