POJ 1503

作者: DeamoV | 来源:发表于2018-02-08 22:53 被阅读6次

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

    相关文章

      网友评论

          本文标题:POJ 1503

          本文链接:https://www.haomeiwen.com/subject/xdmxtftx.html