[题目描述]

一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?

[输入格式]

输入在一行中给一个正整数N(≤1000)。

[输出格式]

在一行中输出当选猴王的编号。

输入样例:

11

输出样例:

7

解题思路 :

对于猴子选大王这道题,每次从1数到3,喊到数字3的猴子退出圈子,直到最后只有一只猴子为止。我的初步想法是用一个数组来解决问题,由于数组是从0开始,而我们这道题的猴子是从1编号,所以我在数组下标为0的位置放置0,这样数组下标为1的位置放置1,以此类推。可以用一个变量cnt来表示数组中元素为0的个数,当cnt小于猴子的总数时一直进行如下循环:使用变量i记录数组下标,我们希望i所对应的元素非0,同时注意i的值不能大于猴子总数;使用变量j记录从1数到3,当j大于3时置j为1,当j为3时,将数组下标为i的元素置为0,同时cnt加1。最后输出数组中的非0元素即为我们想要的结果。
还可以使用约瑟夫环一种数学方法,不过我还没有搞明白o(╥﹏╥)o

C语言代码如下:
#include <stdio.h>
int main(void){int n,i,a[1000],cnt,j,k;scanf("%d",&n);for(i=0;i<=n;i++){a[i]=i;}cnt=1;i=0;j=1;while(a[i]==0){i++;if(i>n)i=0;}while(cnt<n){if(j==3){a[i]=0;cnt++;}j++;if(j>3)j=1;i++;if(i>n)i=0;while(a[i]==0){i++;if(i>n)i=0;}}for(k=0;k<=n;k++){if(a[k])printf("%d",a[k]);}return 0;}

PTA 7-28猴子选大王(C语言实现)相关推荐

  1. 猴子选大王(c语言)

    猴子选大王 描述 格式 样例 题解及详细注释 描述 有n只猴子(编号从1到n),按顺时针方向围成一圈选大王. 规则是从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数.就 ...

  2. 猴子选大王c语言课程设计,【C/C++】猴子选大王

    这些题目都是大一刚入学时学习C语言的课后作业,在OJ上看到还保留着,就都整理下发出来吧......(只有题和代码) [问题描述]要从n只猴子中选出一位大王.它们决定使用下面的方法: n只猴子围成一圈, ...

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

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

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

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

  5. C/C++——猴子选大王(PTA)

    超详注释! 包你一秒钟都看不懂! 2022-7-13更新: 昨天做力扣的#27移除元素,学会了双指针法,今天突然想起这道题,发现可以参考参考双指针. 附上题目: 本关任务:编写一个函数 ki ng,实 ...

  6. 猴子选王c语言链表程序代码,数据结构(C语言)用栈和链表编写猴子选大王程序...

    <数据结构(C语言)用栈和链表编写猴子选大王程序>由会员分享,可在线阅读,更多相关<数据结构(C语言)用栈和链表编写猴子选大王程序(3页珍藏版)>请在人人文库网上搜索. 1.i ...

  7. 7-28 猴子选大王 (C语言)

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

  8. 猴子选王c语言链表程序代码,C语言程序设计-猴子选大王[链表应用]

    2032 猴子选大王 Description 有N只猴子,从1~N进行编号.它们按照编号的顺时针方向排成一个圆圈,然后从第一只猴子开始报数.第一只猴子报的第一个数字为1,以后每只猴子报的数字都是它们前 ...

  9. 主元排序法c语言程序,C语言算法竞赛入门(二)---数组元素移动 、排序问题 、猴子选大王问题...

    数组元素移动 [问题描述]调整输入数组A[0..n],将其分为两部分,左边所有元素为奇数,右边所有元素为偶数 [输入形式]a0,b1,b2,a1,a2,b3,a3,a4 [输出形式]a0,a1,a2, ...

  10. 用C语言编写猴子选大王程序(数据结构)

    猴子选大王案例编程. 编程要求:猴子选大王:一堆猴子都有编号,编号是1,2,3 -m ,这群猴子(m个)按照1–m的顺序围坐一圈,从第1开始数,每数到第n个(n<m),该猴子就要离开此圈,这样依 ...

最新文章

  1. 看完让你彻底搞懂Websocket原理
  2. [C#基础知识系列]专题十七:深入理解动态类型
  3. 软件项目技术点(21)——自动保存和恢复
  4. 每小时的定时任务变成了每分钟
  5. 关于spring boot集成MQTT的一写新人问题
  6. Boost:cpu时间的实例
  7. 快速生成NHibernate的映射文件和映射类的利器 —— codesmith软件
  8. TTL怎么计算拉电流和灌电流_UPS输入输出电流如何计算?电缆如何选择?
  9. java jdk API中英文下载
  10. 英雄联盟更新服务器维护,lol更新维护
  11. javaone_JavaOne 2012:在JVM上诊断应用程序
  12. 用反射方法使用户控件动态调用父页面的方法
  13. 19日下午三点直播:DevOps体系中数据库端的四大问题及解决之道
  14. c语言程序设计中&是什么,C语言程序设计是什么
  15. matlab地址结构与转换,matlab数据类型和转换
  16. [Java] 蓝桥杯ALGO-30 算法训练 入学考试
  17. 49个Python学习资源:从初学者到高级玩家都有了
  18. ESET NOD32 最新更新有效的升级ID用户名和密码
  19. 三星电视机dns服务器维护,4招解救三星智能电视看视频卡顿问题
  20. 西瓜书习题4.3 决策树

热门文章

  1. Python的学习——基础教程(了解基本语法)
  2. mysql8 关闭密码策略_MySQL8的密码策略
  3. LoRaWan协议解析
  4. 关于微信小程序,那些开发文档没有告诉你的
  5. 3.7女生节:被程序员男友送的奇葩礼物宠哭了
  6. 我的2023年护网蓝初面试题(一面)
  7. web2.0网站的功能创新(转)
  8. 中小银行需要建立多大的金融科技人才队伍?
  9. ueditor上粘贴从word中copy的图片和文字
  10. GeneDataBase 基因数据库调研资料