解题注意:
首先不用分类讨论,因为n<100还是n>100都可以n/100。
n是计数记到的个数,所以如果有需要跳过的,就需要n++;
多给循环加一个;
n<666,但是,数会数到大于700,所以考虑i/100%7.
代码:
#include<bits/stdc++.h>
using namespace std;
const int N = 670;
int main()
{
int n;
cin>>n;
int a=0;
int b=0;
int c=0;
int d=0;
/*if(n<=100)
{
for(int i=1;i<n+1;i++)
{
if(i%7==0||i%10==7)
{
n++;
if(i%4==1) a++;
if(i%4==2) b++;
if(i%4==3) c++;
if(i%4==0) d++;
}
}
}
else{*/
for(int i=1;i<n+1;i++)
{
if(i%7==0||i%10==7||(i/10)%10==7||(i/100)%10==7)
{
n++;
if(i%4==1) a++;
if(i%4==2) b++;
if(i%4==3) c++;
if(i%4==0) d++;
}
}
cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;
return 0;
}