这题刚开始没看清题意,忘了数字包含7这茬…(即有可能包括十位数和百位数)好在题目要求的数据范围不大,最大是666,所以省的再写一个函数来完成判断各个位数上是否有7,可以直接写三个求余判断式来判断。
参考了这位铁子的思路,非常简洁明了
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int flag[4]={0};
for(int i=1;i<=n;i++){
if((i%7==0)||(i%10==7)||(i/10%10==7)||(i/100==7)){
flag[i%4]++;
n++;
}
}
cout<<flag[1]<<endl;
cout<<flag[2]<<endl;
cout<<flag[3]<<endl;
cout<<flag[0]<<endl;
}