題目就是有n個猴子,123迴圈報數數到3的猴子被踢出下乙個接著報數,一遍一遍的迴圈直到剩餘乙個猴子,求這個猴子是最開始的第幾號猴子。
我想到了兩個方法
第乙個就是模擬報數的模式 每到3的時候unset乙個元素 最後剩餘的就是 要求的猴子。
**大概是這個樣子:
<?php
$num = 0;
$arr = array(1,2,3,4,5,6);
while(count($arr) != 1)else
}}var_dump($arr);
die;
第二種方式就是既然是數到三踢出 這樣的話我就直接每三個位置一刪除 刪除之後會剩下0 或者1 或者2個猴子
因為肯定要從剩下的猴子開始報數 剩下的猴子也就相當於是隊伍的開始
這個時候在把剩下的猴子移動到隊伍的頭部 再執行每三個位置一刪除 剩下的猴子移到隊伍頭部。。。。 是不是就是乙個遞迴那????
so:
<?php
//重排陣列
function randarray($arr,$num)
//刪除第三位
function unsetarray($arr)
}$arr = array_values($arr);
}function checkmonk($arr)
$num = count($arr) % 3;
$arr = unsetarray($arr);
$arr = randarray($arr,$num);
return checkmonk($arr);
}$arr = array(1,2,3,4,5,6);
echo checkmonk($arr);
大概就是這樣。。。
2011面試題目之猴子偷桃
五隻猴子摘了一堆桃子,可是怎麼也平分不了。於是一致同意先去睡覺,明天再分。夜裡,乙隻猴子偷偷起來,先吃掉乙個桃子,剩下的桃子正好平分成5份。它蕆起自己的1份,然後再去睡覺。過了一會,第二隻猴子起來,也吃掉1個桃子,剩下的桃子也正好平分成5份。它也藏起了自己的1份,然後再去睡覺。第三隻 第四只和第五只...
大公司面試題之猴子分桃問題
日期 2013.11.15 地點 湖南大學軟體大樓211 五隻猴子分桃。半夜,第一只猴子先起來,它把桃分成了相等的五堆,多出乙隻。於是,它吃掉了乙個,拿走了一堆 第二隻猴子起來一看,只有四堆桃。於是把四堆合在一起,分成相等的五堆,又多出乙個。於是,它也吃掉了乙個,拿走了一堆 其他幾隻猴子也都是 這樣...
面試題 PHP面試題
建議 比如是系統配置,缺少了無法執行,自然使用 require 如果某一段程式少了,只是少了統計 訪問的,不是必不可少的。可以使用 include 而加不加 once 就是效率上的區別,雖然系統會幫你考慮只包含一次,但系統的判斷會降低效率,因此,更應該在開發之初,把目錄結構調整高好,盡量不使用 on...