猴子选大王c语言的c语言视频有没有下地址

版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/

17个猴子选大王c语言围成一圈从某个开始报数1-2-3-1-2-3-……报“3”的猴子选大王c语言就被淘汰,游戏一直进行到圈内只剩一只猴子选大王c语言它就是猴大王了

小技巧:用数组来记录猴子选大王c语言是否在圈内的状态:在圈内记为“1”,不在圈内记为“0”并以累加数组元素值来模拟报数过程,这样就减少了判断猴子选大王c语言是否在圈内的操作

方法一的缺点是每次都要扫描包括已出圈嘚所有猴子选大王c语言,时间效率比较低而如果用数组元素来存储其下一只在圈内猴子选大王c语言的下标,就能方便地找到下一只在圈內猴子选大王c语言当一个猴子选大王c语言的下一只猴子选大王c语言就是自己时,圈内就只剩一只猴子选大王c语言它就是候大王了。

在n(0、1、2、3、……、n-1)只猴子选大王c语言中,假定报数m的猴子选大王c语言被删除则第一只被删除的猴子选大王c语言编号为(m-1)%n,记为k,那么删除k之后剩下的n-1只猴子选大王c语言为0、1、……、k-1、k+1、……、n-1,并且下一次是从k+1开始计数相当于在剩下的序列种,k+1排在最前面从而形成k+1、……、n-1、0、1、……、k-1。接下来将剩下的这n-1个数字的序列k+1、……、n-1、0、1、……、k-1映射形成一个从0到n-2的序列0、1、2、……、n-2把映射定义为p,则p(x)=(x-k-1)%n逆过来0、1、2、……、n-2映射为k+1、……、n-1、0、1、……、k-1,时则p’(x)=(x+k+1)%n而k=(m-1)%n,故p’(x)=(x+m)%n。最后一只猴子选大王c语言的编号为0故x=0,n=1。例如当m=3时p’(0)=(0+3)%1=3,表示最后一呮猴大王在倒数第二轮(编号也是从0开始)中编号为3。

while(m<MonkeyNumber-1) /*若有n-1个猴子选大王c语言离开了此圈则说明圈子里只剩下一个猴子选大王c语言此猴子选大王c语言就是猴王不要再报数了*/

有个简单的算法就是约瑟夫环

只怕你难以搞懂!只好寫了个复杂点但却容易懂的!

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

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

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

回溯法是:将猴子選大王c语言总个数循环第一次循环都是将当前需要出圈的猴子选大王c语言排到数组末尾。 这样当全部猴子选大王c语言循环一遍后,数組头的猴子选大王c语言即为猴王 从数组尾开始向头循环输出,即为猴子选大王c语言出圈序列

我要回帖

更多关于 猴子选大王c语言 的文章

 

随机推荐