CCF-CSP C/C++ 201912-1 报数 题解
Posted DonquixoteXXXXX
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CCF-CSP C/C++ 201912-1 报数 题解相关的知识,希望对你有一定的参考价值。
CCF-CSP C/C++ 201912-1 报数 题解
一、题目描述
1、背景
甲乙丙丁决定玩一个报数的游戏来打发时间。
游戏规则为四个人从 1 开始轮流进行报数,但如果需要报出的数是 7 的倍数或含有数字 7 则直接跳过。
此外大家约定,在总共报出了 n 个数后(不计入被跳过的数〉游戏结束。
现在需要你来帮忙统计,游戏过程中每个人各自跳过了几次。
2、输入格式
输入仅一行,包含一个正整数 n,表示报出了多少个数后游戏结束。
3、输出格式
输出共四行,每行一个整数,依次表示甲乙丙丁四人在游戏过程中跳过的次数。
4、数据范围
测试点 1∼5,保证 n≤102;
测试点 6∼10,保证 n≤666。
5、样例
输入样例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 个数,游戏结束。
输入样例2:
66
输出样例2:
7
5
11
5
二、代码
我的代码如下:
#include <iostream>
#include <cstdio>
using namespace std;
bool check7(int n)
while(n)
int x=n%10;
n/=10;
if(x==7)return true;
return false;
int main()
int n;
scanf("%d",&n);
int count[5]=0;
int i;
for(i=1;i<=n;i++)
if(i%7==0||check7(i))
//cout<<i<<" "<<endl;
int x=i%4;
if(x==1)count[1]++;
else if(x==2)count[2]++;
else if(x==3)count[3]++;
else if(x==0)count[4]++;
n++;
for(i=1;i<=4;i++)
cout<<count[i]<<endl;
return 0;
以上是关于CCF-CSP C/C++ 201912-1 报数 题解的主要内容,如果未能解决你的问题,请参考以下文章
CCF-CSP C/C++ 201909-1 小明种苹果 题解
CCF-CSP C/C++ 201912-2 回收站选址 题解
CCF-CSP C/C++ 201909-2 小明种苹果(续) 题解