题解UVA10013 Super long sums

题目传送门

思路

我们可以先用数组存起来每一组数据,接着倒序从个位依次向上加起来。这里需要注意几个点:

  1. 高精度不要使用 string,会 TLE 的。

  2. 题目样例输出是有问题的,输出的数之间应该也有空行。

  3. 记得计算每一位的时候要加上进位而不是直接赋值。

AC 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<bits/stdc++.h>
using namespace std;

int main(){
int T,f;
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> T;
for(int i=1;i<=T;i++){
cin >> f;
int a[1000010]={0},b[1000010]={0},ans[1000010]={0};
for(int j=f;j>=1;j--){
cin >> a[j] >> b[j];
}
for(int j=1;j<=f;j++){
ans[j] += a[j]+b[j];
ans[j+1] = ans[j]/10;
ans[j] %= 10;
}
if(ans[f+1]==1) cout << 1;
for(int j=f;j>=1;j--) cout << ans[j];
if(i==T) cout << endl;
else cout << endl << endl;
}
return 0;
}

AC 记录


题解UVA10013 Super long sums
https://sunnyli.咕咕咕.eu.org/solution-UVA10013/
作者
SunnyLi
发布于
2023年6月14日
许可协议