7879 2106_D:特殊求和

2106_D:特殊求和

分类:
C语言(一级)真题
时间限制: 1000ms

内存限制: 1000MB

如果一个数能够被 7 整除或者十进制表示中含有数字 7 ,那么我们称这个数为幻数,比如 17,21,73 是幻数,而 6,59 不是。

输入:
一个整数 N (1 <= N <= 10000) 。

输出:
一个整数,表示 1 - N 中所有幻数的和。

样例输入:
14

样例输出:
21

#include <iostream>
using namespace std;

bool isMagic(int n) {
    if (n % 7 == 0) {
        return true;
    }
    while (n) {
        if (n % 10 == 7) {
            return true;
        }
        n /= 10;
    }
    return false;
}

int main() {
    int n, sum = 0;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        if (isMagic(i)) {
            sum += i;
        }
    }
    cout << sum << endl;
    return 0;
}


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^