熬夜修仙秃头怪 2021-07-24 19:04 采纳率: 0%
浏览 50

刚入坑,求解为啥运行结果是0

img
问题是求从1到2019所有包含2、0、1、9的数字的平方和

  • 写回答

1条回答 默认 最新

  • CSDN专家-Time 2021-07-24 19:04
    关注

    你这个用string做方便。
    然后atoi再做计算。
    不然用百分号写的很累。

    bool contains(char arrs[] , char a) {
        char* p = arrs;
        bool flag = false;
        while (*p!= '\0') {
            if (*p == a) {
                flag = true;
                break;
            }
            else {
                p++;
                continue;
            }
            
        }
        return flag;
    }
    int main() {
        long long sum = 0;
        char arrs[5];
        
        for (int i = 1; i <= 2019; i++) {
            sprintf(arrs, "%d", i);
            if (contains(arrs, '2') || contains(arrs, '0') || contains(arrs, '1') || contains(arrs, '9')){
                sum += i * i;
            }
        }
        printf("%lld", sum);
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月24日