7-28猴子选大王

题目:

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

输入格式:

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

输出格式:

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

输入样例:

11

输入样例:

7

#include<stdio.h>
int main()
{   int i,j,k,temp;int m[1001];   int n;scanf("%d",&n);for(i=0;i<n;i++)   {       m[i]=i+1;}   for(i=n-1;i>=0;i--){       for(k=1;k<=3;k++){           temp=m[0];           for(j=0;j<i;j++){               m[j]=m[j+1];           }           m[i]=temp;   }   }   printf("%d",m[0]);   return 0;
}

方法解析:
数组下标
0 1 2 3 4 5 6 7 8 9 10
原序列
1 2 3 4 5 6 7 8 9 10 11

新序列
2 3 4 5 6 7 8 9 10 11 1
3 4 5 6 7 8 9 10 11 1 2
4 5 6 7 8 9 10 11 1 2 3 ——3即为第一个退出的猴子(在数组里保持不动)。

新一轮
5 6 7 8 9 10 11 1 2 4 3
6 7 8 9 10 11 1 2 4 5 3
7 8 9 10 11 1 2 4 5 6 3 ——6即为第二个退出的猴子。

继续循环,到最后数组里下标0的序号即为最后一只猴子。

总结:这道题目是经典的约瑟夫环问题,刚开始看到无从下手(本人编程新手),参考了网上的资料,有一些很巧妙的解决方法。有兴趣的小伙伴可以参考了解一下。链接地址:https://blog.csdn.net/yanweibujian/article/details/50876631

PTA 7-28猴子选大王(约瑟夫问题)相关推荐

  1. 猴子选大王--约瑟夫问题浅析

    猴子选大王--约瑟夫问题浅析 猴子选大王问题是一个十分经典的算法问题,这个问题是这样的:一堆猴子都有编号,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N ...

  2. 蓝桥杯 - 猴子选大王 (约瑟夫问题)

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

  3. c语言-猴子选大王-约瑟夫问题(队列,链表,数组)

    猴子选大王 前言:初读此题,根据题意,顺势想到了用刚学的数据结构中的循环队列及循环链表,便想借此来熟练一下新学知识. 题目描述: 一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位 ...

  4. 【PHP版·猴子选大王·约瑟夫环】 一堆猴子都有编号,编号是1,2,3 ...m

    一.问题: n只猴子围坐成一个圈,按顺时针方向从1到n编号. 然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,再从刚出局猴子的下一个位置重新开始报数, 如此重复,直至剩下一个猴子,它就是 ...

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

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

  6. python猴子选大王_sicily 猴子选大王

    题目描述 猴子选大王,有N只猴子,从1-N进行编号.它们按照编号的顺时针方向,排成一个圆圈,然后从第一只猴子开始报数.第一只猴子报1,以后每只猴子报的数字都是它前面猴子所报数字加1.如果一只猴子报的数 ...

  7. java约瑟夫环pta上_cdoj525-猴子选大王 (约瑟夫环)

    约瑟夫斯问题问题有时候也被描述成猴子选大王问题,题目如下.(最后会贴上约瑟夫问题的来历) 一群猴子排成一圈,按1,2,-,n依次编号. 然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再 ...

  8. 约瑟夫环-猴子选大王(变型题)

    约瑟夫环-猴子选大王(变型题) 接着上篇猴子选大王继续展开,上篇讲的是有m个猴子,从第一个猴子开始报数,当报到n时,第n个猴子出去,从n+1猴子开始,从1继续报数. 这篇我们来说,从任意猴子k的位置开 ...

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

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

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

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

最新文章

  1. linux运维实战练习及linux shell脚本、awk、sed工具命令学习总结
  2. Graph(2014辽宁ACM省赛)
  3. python语言程序设计编程题_Python语言程序设计(测试练习题)
  4. 微软2013年笔试题详解及深入
  5. Qt Qwdget 汽车仪表知识点拆解2 图像放大
  6. Html可以输入的下拉框设计
  7. c++ struct与class
  8. 看_那人好像一个产品狗_对_这就是产品狗
  9. 信创环境下密码强度规则:设置密码长度为6至20位,包含大、小写字母、数字、特殊字符组合
  10. Mac自带apache2搭建服务请求localhost报 403 Forbidden
  11. 科学计算机后盖换电池,图吧小白教程 篇二十二:手把手教你给手机换电池(拆机)...
  12. 百度AI的2020:新基建铺路,硬实力出圈
  13. android 模拟自动点击,自动点击模拟器app
  14. 小米 MIX4 发布、三年要拿下全球第一、还有一只 9999 元的狗?快看 3 个小时雷军都讲了什么!...
  15. springfox集成教程
  16. 工程研发中EVT、DVT、PVT、MP等名词解释
  17. mysql数据库密码的修改
  18. easypoi教程_easypoi导出Excel
  19. 爬虫学习 ----- 第二章 爬取静态网站 ---------- 03 . re 模块学习 ---- re屠戮电影天堂
  20. Steam浏览游戏、下载DLC有区域限制

热门文章

  1. 激光雷达考试基础知识
  2. 第六届光电设计大赛心得透过毛玻璃成像matlab
  3. java 股票数据抓取_java抓取东方财富股票数据(附源码)
  4. win10默认壁纸_Win10系统待机锁频壁纸怎么提取?
  5. 工业企业成本费用的核算方法
  6. Spring Interceptor vs Filter 拦截器和过滤器区别
  7. python定义函数求和_Python定义函数实现累计求和操作
  8. dd命令打包多个文件_linux dd命令将系统打包成iso - 卡饭网
  9. 如何恢复被删短信_手机短信删除了怎么恢复?超级简单的两种方法
  10. 用excel制作双层饼图_Excel中怎么绘制双层饼图?