POJ 1503

2018-02-08  本文已影响6人  DeamoV

题目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;
}

上一篇 下一篇

猜你喜欢

热点阅读