题目
甲乙丙丁决定玩一个报数的游戏来打发时间。游戏规则为四个人从1开始轮流进行报数,但如果需要报出的数是7的倍数或含有数字7则直接跳过。
此外大家约定,在总共报出了n个数后(不计入被跳过的数)游戏结束。现在需要你来帮忙统计,游戏过程中每个人各自跳过了几次。
输入
从标准输入读入数据。 输入仅一行,包含一个正整数n,表示报出了多少个数后游戏结束。
输出
输出到标准输出。
输出共四行,每行一个整数,依次表示甲乙丙丁四人在游戏过程中跳过的次数。
样例输入与输出
输入1
20
输出1
2
1
1
0
输入2
66
输出2
7
5
11
5
参考代码
#include<stdio.h>
#include<stdlib.h>
bool judge(int i) //判断数中是否含有7
{
int t=0;
while(i&&t!=7)
{
t=i%10;
i/=10;
}
if(t==7) return true;
return false;
}
int main()
{
int n;
scanf("%d",&n);
int skip[4]={0};
int turn=0;//轮到谁报数:甲0 乙1 丙2 丁3
int count=0;//报了多少数(不包括跳过的)
int i=1;//开始报数
while(count<n)
{
if(i%7==0||judge(i))
{
skip[turn]++;
}
else
{
count++;
}
turn=(turn+1)%4;
i++;
}
for(int i=0;i<4;i++)
{
printf("%d\n",skip[i]);
}
return 0;
}