一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈


* 一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,
 * 从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,
 * 直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号*/

 

刚开发搞PHP一周,看了下面试题。如是乎写下实现方法,可能有错误。

 

 

<html>
<head>
    <title>测试表单提交</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<?php
    $monkeys[]='';
    $m=45;
    $n=6;
    $index=0;
    for($i=0;$i<45;$i++)
    {
        $monkeys[$i]=$i+1;
    }
echo $m."只猴子排成一圈,按1,2,…,45依次编号。然后从第1只开始数,数到第".$n."只,把它踢出圈,最后剩下编号为";
function whoisKing($monkeys,$n,$index){
    if(count($monkeys)==1){
        echo $monkeys[0].'的猴子,他就是猴王!谁不服气';
        return;
    }
    //echo "当前还剩".count($monkeys)."个猴子如下<br/>";

    for($i=0;$i<count($monkeys);$i++){
        //echo $monkeys[$i]." ";
    }
    //echo "<br/>";
    $tempIndex=$index;
    $tempCount=count($monkeys);
    for($i=0;$i<$tempCount;$i++){
        if(($i+1+$index)%$n==0)
        {
            //echo $monkeys[$i]."出局<br/>";
            unset($monkeys[$i]);
        }
        $tempIndex++;
        $tempIndex=$tempIndex%$n;
    }


    whoisKing(array_values($monkeys),$n,$tempIndex);

}
whoisKing($monkeys,$n,$index);



?>
</body>
</html>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号 面试题-python3 100个人围一圈编号1-100,依次开始报数报到3的退出 有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 n人围成一圈报数 【转】约瑟夫环算法---------题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 约瑟夫环问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 5、题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 思路:n长度的数组,boolean类型。出圈置为false,当最后只有一个true的时候,就是留下来的人。 13个人围成一圈,从第1个人开始顺序报号1,2,3。凡报到3者退出圈子。找出最后留在圈子中的人原来的序号。要求用链表实现 用伪代码表示第4题中各题的算法 有两个瓶子A和B,分别盛放醋和酱油,要求将他们互换 依次将10个数输入,要求输出其中最大的数 有3个数a,b,c, 要求按大小顺序把他们输出 求1 + 2 + 3 + ... + 100 判断一个数n能否同时被3和5整除 求两个数m和n的最大公约数
 
粤ICP备18138465号  © 2018-2026 CODEPRJ.COM