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);
     
     
    测试一下:
     
     




  • 相关阅读:
    Redis3.2集群部署安装
    熟悉SQL Server 数据类型
    泛型的参数简介和参数约束
    流(Stream)与文件流(FileStream)
    C#提取双引号中的字符串
    数组,一维数组,二维数组,交错数组
    结构,枚举
    C#中唯一的三元运算符
    位运算
    异常处理语句
  • 原文地址:https://www.cnblogs.com/firmy/p/2939832.html
Copyright © 2011-2022 走看看