CCF CSP 201712-2 游戏 思路总结

news/2024/10/22 15:27:37/
  • 问题描述

试题编号:201712-2
试题名称:游戏
时间限制:1.0s
内存限制:256.0MB
问题描述:

问题描述

  有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。
  游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k的倍数或其末位数(即数的个位)为k,则该小朋友被淘汰出局,不再参加以后的报数。当游戏中只剩下一个小朋友时,该小朋友获胜。
  例如,当n=5, k=2时:
  1号小朋友报数1;
  2号小朋友报数2淘汰;
  3号小朋友报数3;
  4号小朋友报数4淘汰;
  5号小朋友报数5;
  1号小朋友报数6淘汰;
  3号小朋友报数7;
  5号小朋友报数8淘汰;
  3号小朋友获胜。

  给定nk,请问最后获胜的小朋友编号为多少?

输入格式

  输入一行,包括两个整数nk,意义如题目所述。

输出格式

  输出一行,包含一个整数,表示获胜的小朋友编号。

样例输入

5 2

样例输出

3

样例输入

7 3

样例输出

4

数据规模和约定

  对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ k ≤ 9。

 

  • 解题思路

#include<iostream>
using namespace std;
int main()
{int CallNum = 0;int n, k;cin>>n>>k;int Child[n];for(int i = 0; i < n; i++){//必须要先置0。Child[i] = 0;}int exit = n;int i = 0;while(exit != 1){for(i = 0; i < n; i++){if(exit == 1) break;if(Child[i] == -1) continue;//检查是否已被淘汰。//没有被淘汰:CallNum++;//printf("%d号小朋友报数:%d\n", i+1, CallNum);if(CallNum%k == 0||CallNum%10 == k){//符合淘汰条件Child[i] = -1;exit--;}}}//找到最后一个报数的小朋友。int j;for(j = 0; j < n; j++){if(Child[j] != -1) break;}cout<< j+1;
}
  • 思路总结

    这一题在考试时使用Java的List做出来了。本博客中使用的是C++语言。

    在此题中使用数组模拟报数。设置了一个大变量CallNum=0,用来记录所报的数字。设置一个Child[n]数组,用来表示多个小孩的序列。

    程序中,先判断是否仅剩一个人,使用exit标识,若仅剩一人,则退出循环。然后开始报数,使用Child[i]=-1表示第i号小孩被淘汰。如果小孩没有被淘汰,则进行报数CallNum++,并根据筛选条件【CallNum%k == 0||CallNum%10 == k】判断是否要将当前小孩淘汰。如果小孩被淘汰了,就不再让他/她报数。

    最后需要查找一下最后一个报数的小孩编号。博主因为没有考虑到这一点,卡了一下。不过通过打印测试找到了问题所在。

    做这种题需要较强的逻辑能力,如果逻辑能力一般,可以在本子上写一下思路,方便写程序。


http://www.ppmy.cn/news/430910.html

相关文章

如何使用C++做个简单推箱子游戏

今天向大家介绍一下如何使用C来写一个推箱子游戏的代码 首先要做出推箱子&#xff0c;我们先要明确它的思路是什么&#xff1a; 如图&#xff0c;在一个推箱子游戏中&#xff0c;我们首先要有一个二维的地图&#xff0c;并在地图中加入障碍物&#xff0c;箱子&#xff0c;小人…

U3D游戏角色血条制作并显示血量变化

U3D游戏角色血条制作并显示血量变化 关键&#xff1a;利用Slider来制作血条 大概效果&#xff1a; 数字会随着血量变化而变化。 步骤 1、在层级面板中右击&#xff0c;选择UI中的Slider. 2、创建好后&#xff0c;将Slider命名为HealthBar&#xff0c;可以看到层级面板中Sl…

这写孩子对计算机游戏上瘾了,孩子游戏上瘾怎么办?

首先&#xff0c;高中和初中是不一样的&#xff0c;主要原因有两个。原因1是因为刷下去了一批人。原因2是因为9年义务教育是在进行观点&#xff0c;世界观和基础知识的教育&#xff0c;而现在的高中则是侧重于技巧&#xff0c;高考要的学生不是万博而是专精&#xff0c;这点老师…

只是想虐下春丽,一不小心撸了台游戏机...

事情是这样的…… 前天下午天太热&#xff0c;我在家看电视&#xff0c;换台突然就看到了正在播《西游记》&#xff0c;窗外蝉声特别响&#xff0c;我一下就有种穿越回小学暑假的感觉。当时&#xff0c;我就特别想把我那台小霸王翻出来&#xff0c;玩两盘街霸……虐一下春丽 翻…

省社科基金本子评审标准总结

以”广东省社科基金——管理科学与工程”为例 评价指标&#xff1a; 1.选题科学性&#xff08;100分&#xff09; 项目研究的科学价值&#xff1b;拟解决科学问题的前沿性、重要性&#xff1b;对科学问题国内外发展现状分析的科学性、准确性&#xff1b;对学科发展的意义。 …

玩纸牌游戏计算机教案,大班科学纸牌游戏教案

教案一&#xff1a;好玩的扑克 活动目标&#xff1a; 1、尝试用多种方法让扑克牌站立起来&#xff0c;感知力与平衡的关系。 2、学习记录实验结果并乐于大胆明确的表达自己的想法。 3、在探索扑克的多种玩法中锻炼求异思维&#xff0c;乐于合作探究。 活动准备&#xff1a; 1、…

从零开始入门创作游戏——对象交互与UI展示

做教程远比自己开发游戏要花时间...继续写小恐龙的游戏教程 环境搭建在这里 从零开始入门创作游戏——Unity3d的环境搭建_默哀d的博客-CSDN博客 素材导入和基本页面介绍在这里 从零开始入门创作游戏——Unity编辑器的使用_默哀d的博客-CSDN博客 游戏对象的运动和交互逻辑脚…

c语言 simon 游戏,汉语课堂教学游戏推荐(上)

原标题&#xff1a;汉语课堂教学游戏推荐(上) 一、 BINGO 游戏 先让学生在本子上画九个格&#xff0c;每个格内填写一个听到的汉字&#xff0c;最后当老师念完后&#xff0c;老师选3个汉字念出来&#xff0c;只要学生把这 3个汉字填写在一条线上&#xff0c;便可获胜 &#xff…