约瑟夫环

来源:互联网 发布:卖耐克阿迪折扣店淘宝 编辑:程序博客网 时间:2024/05/02 00:59
<?php
/*
n只猴子围坐成一个圈,按顺时针方向从1到n编号。然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,再从刚出局猴子的下一个位置重新开始报数,如此重复,直至剩下一个猴子,它就是大王。设计并编写程序,实现如下功能:
(1)要求由用户输入开始时的猴子数n、报数的最后一个数m。
(2)给出当选猴王的初始编号。
*/
header("Content-type:text/html;charset=utf-8");
$n = $_POST['n'];
$m = $_POST['m'];
for($i=1;$i<=$n;$i++){
$num[$i]=$i;
}
$a=1;
while(count($num)>1){
if($a%$m==0){
unset($num[$a]);
}else{
array_push($num,$num[$a]);
unset($num[$a]);
}
$a++;
}
$dawang=implode('',$num);
echo '大王的编号为'.$dawang;
0 0