题目LINK
题意解释
这道题的题意非常简单,就是输入几个数,然后相加没什么好解释的。
收获
这道水题对于我这样的初学者来说就是熟悉超长数据的加法运算。对于没做过这道题且是初学者的话,将巩固以下知识点。
1.字符串的操作如strcmp和strlen。
2.锻炼在大脑中构思数组并灵活运用的一种思维吧。总之是我现在做的水题里最水的。
AC代码
#include <iostream>
#include <cstring>
#define MAXN 105
using namespace std;
char input[MAXN];
int output[10000]; // ???
int main(void){
int len; // save string's length
while (scanf("%s",&input) && strcmp(input, "0") && (len = strlen(input))) {
for (int i = 0; i < len; i++) {
output[i] += input[len-1-i] - '0';
}
}
for (int i = 0; i < 104; i++) {
if(output[i] > 9){
output[i+1] += output[i]/10;
output[i] %= 10;
}
}
int i = MAXN - 1 ;
while(!output[--i]) ;
while(i >=0){
cout << output[i--];
}
cout << endl;
return 0;
}