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




  • 相关阅读:
    ssh事务配置
    使用注解实现事务处理
    c3p0、dbcp<转>
    添加业务层和事务机制
    使用spring集成hibernate
    使用Adivisor配置增强处理
    aop注解
    Spring IoC实现解耦合
    python console的命令执行
    python格式化输出
  • 原文地址:https://www.cnblogs.com/firmy/p/2939832.html
Copyright © 2011-2022 走看看