题解

· · 题解

题目分析:

首先本题要求:

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

所以本题采用 for 循环+特判。

特判代码:

if(!(i%7==0||i%10==7||i/10%10==7))ans+=i*i;

这也就是本题代码的核心了,记得取反(无关)。

代码

#include<iostream>
using namespace std;
int main(){
    int n,ans=0;
    cin>>n;
    for(int i=1;i<=n;i++)
        if(!(i%7==0||i%10==7||i/10%10==7))ans+=i*i;
    cout<<ans;
}