知识点与难度
输出 1到n之间 的与 7 有关数字的个数。
一个数与7有关是指这个数是 7 的倍数,或者是包含 7 的数字(如 17 ,27 ,37 ... 70 ,71 ,72 ,73...)
数据范围:1≤n≤30000
描述
一个正整数 n 。( n 不大于 30000 )
输入描述:
一个整数,表示1到n之间的与7有关的数字个数。
输出描述:
输出描述
输入输出示例:
输入:
20
输出:
3
我的代码:
#include <iostream>
#include <string>
using namespace std;
int checkSeven(string s){
for(char i : s){
if(i=='7'){
return 1;
}
}
return 0;
}
int main() {
int n;
int count=0;
cin>>n;
for(int i=1;i<=n;i++){
if(i%7==0){
count++;
}else if(checkSeven(to_string(i))){
count++;
}
}
cout<<count<<endl;
}
// 64 位输出请用 printf("%lld")
我的代码分析:
很简单,先穷举,然后判断一下是不是7的倍数,再判断一下含不含7。
top1代码:
#include<iostream>
using namespace std;
bool isRelateTo7(int n){
if(n%7==0){
return true;
}
while(n!=0){
if(n%10==7){
return true;
}
n=n/10;
}
return false;
}
int main(){
int N;
while(cin>>N){
int count=0;
for(int i=1;i<=N;i++){
if(isRelateTo7(i)){
count++;
}
}
cout<<count<<endl;
}
}
top1代码分析:
在判断是否含7上,我用的是字符串,他用的是除10求余来判别
总结:
无