<?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));
php面试题-猴子选大王算法实现
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 我们采用闭包自调用的方式,很轻松的解决了这个问题,无需循环,代码美观可读性强 1.我在桌面创建了一个php文件,实...
- 6.2.4 PHP删除数组中的值应用实例(猴子选大王) 数组的声明 数组的定义 •直接赋值的方式声明数组•使用ar...
- ...<?php//其实n小,每次数一个数且没有被排除时,数组会array_push,直到选中。function ...