7-28 猴子选大王 (20 分)
猴子选大王 (20 分)
一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?
输入格式:
输入在一行中给一个正整数N(≤1000)。
输出格式:
在一行中输出当选猴王的编号。
输入样例:
11
输出样例:
7
分析:这道题目跟我们之前写过的报数差不多,但是输出不一样,我们依然使用报数的方法来解决问题,需要一个猴子计数器,需要一个淘汰变量。猴子计数器每数到3的时候,淘汰变量-1,直到最后一个猴子当大王。
代码实现:
#include<stdio.h>
int main()
{int n=0;scanf("%d",&n);int a[1000]={0};//因为我们不知道输入的n值为多少,所以我这里设置最大的数组;int i=0;int taotai=0,shengyu=n;//淘汰变量,猴子计数器;for(i=0;i<n;i++){a[i]=i+1;//这个是我们猴子淘汰的条件,当不为0时taotai++;}while(shengyu>1){//这里改成>0就跟我们的报数问题差不多了;for(i=0;i<n;i++){if(a[i]==0){continue;}taotai++;if(taotai==3){a[i]=0;//为后面的输出大王做铺垫,这样设置是因为到最后的数组中仅有一个不为0的数就是“猴子大王”;taotai=0;shengyu--;}}}for(i=0;i<n;i++){if(a[i]!=0){printf("%d",i+1);}}return 0;
}
7-28 猴子选大王 (20 分)相关推荐
- 猴子选大王 (20 分)
7-10 猴子选大王 (20 分) 一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧 ...
- PTA基础题目集 7-28 猴子选大王 (20 分)
一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数.如此不 ...
- PTA 7-28 猴子选大王 (20 分)-gcc编译器过不了?
综述: 猴子选大王这道题看着好像挺简单的,但是实际做起来也不容易.猴子的编号从1到N,然后报数,首先面对的第一个问题是怎么存储这些个猴子,我最开始想用链表,因为链表删除数据容易点,而数组要是删除中间的 ...
- 7-28 猴子选大王 (20 分) 最易理解的方法
一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数.如此不 ...
- 中M2019春C入门和进阶练习 7-69 猴子选大王 (20 分)
一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数.如此不 ...
- 7-28 猴子选大王 (20 分),从中学习约瑟夫环
一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数.如此不 ...
- 猴子选大王 java,PAT-JAVA-5-28 猴子选大王 (20分)
F(1)=0 当有2个人的时候(N=2),报道(M-1)的人自杀,最后自杀的人是谁?应该是在只有一个人时,报数时得到的最后自杀的序号加上M,因为报到M-1的人已经自杀,只剩下2个人,另一个自杀者就是最 ...
- C语言每日一题-PTA基础编程题-7-28 猴子选大王
7-28 猴子选大王 (20分) 一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻 ...
- php猴子找大王算法,教程方法;php实现猴子选大王问题算法实例电脑技巧-琪琪词资源网...
琪琪词资源网-教程方法;php实现猴子选大王问题算法实例电脑技巧,以下是给大家带来的教程方法;php实现猴子选大王问题算法实例,大家可以了解一下哦! 下面为你介绍php实现猴子选大王问题算法实例. 本 ...
最新文章
- linux如何设置awesome字体,Awesome简单配置
- 移动时代的互联网格局变化
- Network 【TCP/IP 四层模型】
- python 网页登录selenium_使用selenium登录网页
- matlab r2012a win10,vs2010和Matlab R2012a 混合编程
- java线程知识梳理_Java多线程——多线程相关知识的逻辑关系梳理
- 海尔5D净水洗热水器引领中国制造未来
- stm32f103r6最小系统原理图_超强PCB布线设计经验谈附原理图
- linux svn 服务 关闭,Linux下启动、关闭SVN服务
- ubuntu crontab 不执行的解决方法
- Confluence 6 连接到 Jira 用户管理的限制
- 单片机有没有想象中那么好学,很迷茫有说正面有说负面
- H凹变换—lhMorpHConcave
- 最全iOS数据存储方法介绍:FMDB,SQLite3 ,Core Data,Plist,Preference偏好设置,NSKeyedArchiver归档...
- 流水灯及注释c语言,流水灯 - 单片机教程 - C语言网
- 2路归并排序算法c语言,用二路归并排序算法实现N个元素的排序
- android 行政区域,Android高德之旅(14)行政区划搜索
- 永久删除计算机文件怎么操作步骤,如何彻底删除电脑中的文件 永久删除文件方法...
- “我是技术总监,你干嘛总问我技术细节?”
- 【转】图片热点链接使用方法
热门文章
- (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
- Win10+GeForce 940M(CUDA8.0)+Visual Studio 2015的GPU环境配置步骤
- 推荐 : 湖南卫视节目 晚间剧组 洞穴之光
- 企业邮箱如何购买?企业邮箱费用哪家更划算?
- 利用爬虫技术构建Nifty Gateway的NFT数据分析平台
- HTML+CSS+JS实现 ❤️飞行人物图标动画特效❤️
- matlab 视频画面裁剪(去除手机拍摄视屏的黑边)
- Spring Boot+Spring Security+JWT 实现token验证
- 打印机无法连接计算机,win7系统下打印机无法连接电脑的解决方法
- 关于bootstrap日期选择器显示时分秒的问题