0%
约 1 分钟
CSP 201912-1 报数 C++ 100
题目
【题目描述】 甲乙丙丁决定玩一个报数的游戏来打发时间。游戏规则为四个人从1开始轮流进 行报数,但如果需要报出的数是7的倍数或含有数字7则直接跳过。 此外大家约定,在总共报出了个数后(不计入被跳过的数)游戏结束。现在需要 你来帮忙统计,游戏过程中每个人各自跳过了几次。
【输入格式】 从标准输入读入数据。 输入仅一行,包含一个正整数,表示报出了多少个数后游戏结束。
【输出格式】 输出到标准输出。 输出共四行,每行一个整数,依次表示甲乙丙丁四人在游戏过程中跳过的次数。
【样例1输入】
20
【样例1输出】
2
1
1
0
【样例1解释】 报数过程为: 甲:1,乙:2,丙:3,丁:4 甲:5,乙:6,丙:跳过,丁:8 甲:9,乙:10,丙:11,丁:12 甲:13,乙:跳过,丙:15,丁:16 甲:跳过,乙:18,丙:19,丁:20 甲:跳过,乙:22,丙:23,丁:24 在丁报出24后,四个人总计报出了20个数,游戏结束。
代码
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int ifhave7(ll x)
{
while(x>0)
{
if(x%10==7)
return 1;
else
x=x/10;
}
return 0;
}
int main()
{
ll A[4]={0};
ll n;
ll i=1,j=0,cnt=0;
cin>>n;
while(cnt<n)
{
if(i%7==0ifhave7(i))
A[j]++;
else
cnt++;
i++;
j=(j+1)%4;
}
for(j=0;j<4;j++)
cout<<A[j]<<endl;
return 0;
}
评论