zoukankan      html  css  js  c++  java
  • 关于猴子选大王的问题

    看到这样一个问题:有m只猴子,从1开始数到n,第n只猴子退出,如此循环执行下去,直到剩下最后一只猴子,求该猴子的编号?
    试着写了一个模拟报数
    <?php
    /*************************************************************************
        > File Name: getMonkeyKing.php
        > Author: firmy
        > Mail: firmy@foxmail.com
        > Created Time: 2013年03月01日 16时11分48秒 CST
    ************************************************************************/
    //猴子选大王的程序。首先输入猴子的数目m,然后输入每次查猴子的数目n。每数N次删除一个猴子。最后剩下的是大王。
     
    function getKing($m,$n){
        //构造队列
        for($i=1;$i<=$m;$i++){
            $list[$i] = $i;
        }
        $j = 1;//设定指针
        $k = 1;
        while(count($list)>1){
            $k = ($k==($n+1))?1:$k;
            echo current($list)."=>{$k}\n";
            if(($j%$n) == 0){
                echo "===========throw {$list[$j]} out,next================\n";
                unset($list[$j]);
            }else{
                array_push($list,$list[$j]);
                unset($list[$j]);
            }
            $j++; //从下一只猴子开始数
            $k++;
        }
        echo "the king is :".current($list).";haha!!!\n";
     
        return $list;
    }
    $monkeyNum = $argv[1];
    $num = $argv[2];
    getKing($monkeyNum,$num);
     
     
    测试一下:
     
     




  • 相关阅读:
    移动网络介绍
    统一导航路由方案
    负载均衡汇总
    Openfire部署和配置说明
    CDN技术介绍
    流媒体
    WebSocket和HTTP的区别与联系
    zabbix 邮件报警
    Linux系统故障-Repair filesystem
    redhat 6.8 配置yum源
  • 原文地址:https://www.cnblogs.com/firmy/p/2939832.html
Copyright © 2011-2022 走看看