关于#c++#的问题:65536输入输入为一行,正整数n(n < 100)输出输出一行,即小于等于n的所有与7无关的正整数的平方和

一个正整数,如果它能被7整除,或者它的十进制表示法中某一位上的数字为7,则称其为与7相关的数.现求所有小于等于n(n < 100)的与7无关的正整数的平方和.

时间限制:1000
内存限制:65536
输入
输入为一行,正整数n(n < 100)
输出
输出一行,包含一个整数,即小于等于n的所有与7无关的正整数的平方和。
样例输入
21
样例输出
2336


#include <iostream>
using namespace std;

bool has_7(int x) {

    while (x) {
        if (x % 10 == 7) return true;
        x /= 10;
    }
    return false;
}

int main() {
    int n, sum = 0;
    cin >> n;
    for (int i = 0; i < n; i++) {
        if (i % 7 == 0 || has_7(i)) continue;
        sum += i * i;
    }
    cout << sum << endl;

    return 0;
}

逻辑部分不懂可以在下方评论:(助力解答)


#include <iostream>
using namespace std;

int main() {
    int number;             //定义一个整数变量,用于存放输入数
    int sum = 0;            //和7无关的平方和
    printf("Please enter a number and not greater than 100:");
    cin>>number;        //输入一个数

    for(int i = 0; i<=number; i++)
    {
        if(i%10 == 7 || i%7 == 0 || i/10 == 7)         //逻辑判断部分被7整除
        {
            continue;
        }
        sum = sum + number*number;
    }
    cout<<"Output value:"<<sum<<endl;   //输出的值
    return 0;
}

```