信奥C++

与7无关的数

描述

一个整数,如果这个数能够被7整除,或者其中有一位是7,我们称为这个数是与7有关的数。比如:14能被7整除,17有一位为7,这两个数都是与7有关的数。
请你编程求出1~n(n<=999)中,与7无关的数的总和是多少?
比如1~10中与7无关的数的和为:1+2+3+4+5+6+8+9+10=48。

输入描述

一个整数n(n<=999)

输出描述

1~n中与7无关的数的总和

#include <iostream>
using namespace std;

int main() {
    int n, sum = 0;
    cin >> n;

    for (int i = 1; i <= n; i++) {
        // 检查是否能被7整除
        if (i % 7 == 0) continue;

        // 检查是否含有数字7
        int x = i;
        bool has7 = false;
        while (x > 0) {
            if (x % 10 == 7) {
                has7 = true;
                break;
            }
            x /= 10;
        }
        if (has7) continue;

        // 如果既不能被7整除,也不含7,就加到总和里
        sum += i;
    }

    cout << sum << endl;
    return 0;
}