您的位置:首页 > 其它

关于猴子选大王的问题

2013-03-02 11:39 183 查看
看到这样一个问题:有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); 测试一下:


来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: