猴子分桃问题
June 15, 2016 by jaifire
五只猴子采得一堆桃子,猴子彼此约定隔天早起后再分食。不过,就在半夜里,一只猴子偷偷起来,把桃子均分成五堆后,发现还多一个,它吃掉这桃子,并拿走了其中一堆。第二只猴子醒来,又把桃子均分成五堆后,还是多了一个,它也吃掉这个桃子,并拿走了其中一堆。第三只,第四只,第五只猴子都依次如此分食桃子(第五只分完就天亮了,不再分)。那么桃子数最少应该有几个呢?
解:
<?php function func1($init = 1) { $p = $init; $flag = true; for ($i = 0; $i < 5; $i++) { if ($p % 5 == 1) { $p = $p - 1 - ($p - 1) / 5; } else { $flag = false; } } if ($flag) { //如果没有改变过,那说明刚好符合规则分5次 return $init; } else { //改变了就把原参数加1再调用 return func1($init + 1); } } var_dump(func1());
发表评论