是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
要求输入:n,k,m
输出:退出顺序
<?php
//$n 人数 $k 开始位置 $m 要数得数字
function array_f($n,$k,$m){
for($i=1; $i <= $n ; $i++){
$oldArr[] = $i;
}
for ($i=0;$i<$k-1;$i++){
$num = array_shift($oldArr);
$oldArr[] = $num;
}
for($i=0;$i<$n;$i++){
for($j=0;$j<$m-1;$j++){
$num = array_shift($oldArr);
$oldArr[] = $num;
}
$newArr[] = array_shift($oldArr);
}
var_dump($newArr);
}
array_f(6,2,3);