系统的测试用例不厚道啊,明明它自己说的n<=666,然后提交后就有测试用例百位为7的情况。
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int n;
cin>>n;
int p[4]={0,0,0,0};
int count=1;
for(int i=1;count<=n;i++)
{
//printf("i=%d\n",i);
if(i%7==0||i%10==7||i/10%10==7||i/100==7)
{
p[i%4]++;
//printf("p[%d]=%d\n",i%4,p[i%4]);
}else
{
count++;
//printf("count=%d\n",count);
}
}
for(int i=1;i<4;i++)
{
cout<<p[i]<<endl;
}
cout<<p[0]<<endl;
return 0;
}
n = int(input())
count = 1
i = 1
p = [0 for i in range(4)]
def contain7(num):
# print('num=',num)
#print(num-(num//10)*10)
if(num%10 == 7):
return True
elif(num//10%10 == 7):
return True
elif(num//100 == 7):
return True
return False
while True :
if(count == n+1): break #第n次报数的时候也得判断一下
#print('count=',count)
if(i%7 == 0 or contain7(i)):
#print(i,'=',i%4)
p[i%4] += 1
else :
count += 1
i += 1
for i in range(1,4):
print(p[i])
print(p[0])