枚举 1 至 n,排除 7 的倍数和含数字 7 的数后累加平方。
OJ: noi_openjudge
题目 ID: ch0105-39
难度:入门
标签:枚举字符串整除python
日期: 2026-07-30 23:01
题意
求不超过 7。
思路
枚举 number % 7 != 0 判断是否不是 7 的倍数,"7" not in str(number) 判断数位中是否没有 7;两个条件都成立时累加平方。
代码
Python代码
python
limit = int(input())
total = 0
for number in range(1, limit + 1):
if number % 7 != 0 and "7" not in str(number):
total += number * number
print(total)C++代码
cpp
#include <cstdio>
int main(){
int sum = 0;
int i,n;
scanf("%d",&n);
for (i=1;i<=n;i++){
if( i % 7 == 0) continue;
bool flag= false;
int t= i;
while( t != 0){
int a = t % 10;
if( a == 7){
flag = 1;
break;
}
t /= 10;
}
if( flag) continue;
sum += i*i;
}
printf("%d\n",sum);
return 0;
}复杂度
设
总结
数位存在性判断可直接转成字符串,逻辑比手动反复取余更紧凑。