题目描述
小C不是很喜欢数字“7”。
对于给定的一个正整数,小 C 对能被 7 整除的正整数,或者它的十进制表示法中某一位上的数字为 7,则称其为与 7 相关的数。现求所有小于等于n的与7无关的正整数的和。
输入格式
从文件 seven.in 中读取数据。
输入为一行,正整数n。
输出格式
输出到文件 seven.out 中。
输出一行,包含一个整数,即小于等于n的所有与7无关的正整数的和。
输入输出样例
输入样例1:21
画写样例1:172
说明
【数据范围】n <=10000
【耗时限制】1000ms 【内存限制】256MB
来道水题放松一下~
二话不说直接上代码!
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n;
int main(){
scanf("%d",&n);
long long ans=0;
for(int i=1;i<=n;i++){
int a=i%10,b=i/10%10,c=i/100%10,d=i/1000%10;
if(a==7||b==7||c==7||d==7||i%7==0) continue;
else ans+=i;
}
cout<<ans;
return 0;
}
for循环判断即可,范围也不是很大
拓展
如果n再大一点儿,for循环超时怎么办?
先算出1-n总和,再减去不满足条件的即可
尊嘟简单吧?
楼主绝对不会骗你们哒~