<?php
/**
* 猴子选大王
* @param [type] $data 猴子数据,默认值都为1,排查设为0, 例: [1,1,1,1,1,1]
* @param [type] $m 报数
* @return [type] 猴子序号
*/
function selectKing($data, $m)
{
$count = $end = count($data); //猴子个数
$current = 0;
$number = 1;
while ($count) {
if ($data[$current] != 0) {
//最后一个
if ($count == 1) {
break;
}
if ($number == $m) {
$data[$current] = 0; //排除一个
$number = 1; //重新报数
$count--; //去掉一个
} else {
$number++; //继续报数
}
}
//下一位
$current++;
if ($current == $end) {
$current = 0;
}
}
return $current + 1;
}
$data = [1, 1, 1, 1, 1, 1, 1];
var_dump(selectKing($data, 6));
网友评论