猴子选大王 (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 分)相关推荐

  1. 猴子选大王 (20 分)

    7-10 猴子选大王 (20 分) 一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧 ...

  2. PTA基础题目集 7-28 猴子选大王 (20 分)

    一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数.如此不 ...

  3. PTA 7-28 猴子选大王 (20 分)-gcc编译器过不了?

    综述: 猴子选大王这道题看着好像挺简单的,但是实际做起来也不容易.猴子的编号从1到N,然后报数,首先面对的第一个问题是怎么存储这些个猴子,我最开始想用链表,因为链表删除数据容易点,而数组要是删除中间的 ...

  4. 7-28 猴子选大王 (20 分) 最易理解的方法

    一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数.如此不 ...

  5. 中M2019春C入门和进阶练习 7-69 猴子选大王 (20 分)

    一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数.如此不 ...

  6. 7-28 猴子选大王 (20 分),从中学习约瑟夫环

    一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数.如此不 ...

  7. 猴子选大王 java,PAT-JAVA-5-28 猴子选大王 (20分)

    F(1)=0 当有2个人的时候(N=2),报道(M-1)的人自杀,最后自杀的人是谁?应该是在只有一个人时,报数时得到的最后自杀的序号加上M,因为报到M-1的人已经自杀,只剩下2个人,另一个自杀者就是最 ...

  8. C语言每日一题-PTA基础编程题-7-28 猴子选大王

    7-28 猴子选大王 (20分) 一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻 ...

  9. php猴子找大王算法,教程方法;php实现猴子选大王问题算法实例电脑技巧-琪琪词资源网...

    琪琪词资源网-教程方法;php实现猴子选大王问题算法实例电脑技巧,以下是给大家带来的教程方法;php实现猴子选大王问题算法实例,大家可以了解一下哦! 下面为你介绍php实现猴子选大王问题算法实例. 本 ...

最新文章

  1. linux如何设置awesome字体,Awesome简单配置
  2. 移动时代的互联网格局变化
  3. Network 【TCP/IP 四层模型】
  4. python 网页登录selenium_使用selenium登录网页
  5. matlab r2012a win10,vs2010和Matlab R2012a 混合编程
  6. java线程知识梳理_Java多线程——多线程相关知识的逻辑关系梳理
  7. 海尔5D净水洗热水器引领中国制造未来
  8. stm32f103r6最小系统原理图_超强PCB布线设计经验谈附原理图
  9. linux svn 服务 关闭,Linux下启动、关闭SVN服务
  10. ubuntu crontab 不执行的解决方法
  11. Confluence 6 连接到 Jira 用户管理的限制
  12. 单片机有没有想象中那么好学,很迷茫有说正面有说负面
  13. H凹变换—lhMorpHConcave
  14. 最全iOS数据存储方法介绍:FMDB,SQLite3 ,Core Data,Plist,Preference偏好设置,NSKeyedArchiver归档...
  15. 流水灯及注释c语言,流水灯 - 单片机教程 - C语言网
  16. 2路归并排序算法c语言,用二路归并排序算法实现N个元素的排序
  17. android 行政区域,Android高德之旅(14)行政区划搜索
  18. 永久删除计算机文件怎么操作步骤,如何彻底删除电脑中的文件 永久删除文件方法...
  19. “我是技术总监,你干嘛总问我技术细节?”
  20. 【转】图片热点链接使用方法

热门文章

  1. (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  2. Win10+GeForce 940M(CUDA8.0)+Visual Studio 2015的GPU环境配置步骤
  3. 推荐 : 湖南卫视节目 晚间剧组 洞穴之光
  4. 企业邮箱如何购买?企业邮箱费用哪家更划算?
  5. 利用爬虫技术构建Nifty Gateway的NFT数据分析平台
  6. HTML+CSS+JS实现 ❤️飞行人物图标动画特效❤️
  7. matlab 视频画面裁剪(去除手机拍摄视屏的黑边)
  8. Spring Boot+Spring Security+JWT 实现token验证
  9. 打印机无法连接计算机,win7系统下打印机无法连接电脑的解决方法
  10. 关于bootstrap日期选择器显示时分秒的问题