猴子摘桃

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了猴子摘桃相关的知识,希望对你有一定的参考价值。

问题描述:

  一只猴子摘桃子,摘累了,决定休息一下再分桃子。过了一会,来了一只猴子,把所有桃子均分成了5份,结果多了1个,就把多出的吃了,然后拿走了其中的一份;过了一会,又来了一只猴子,它并不知道前面已经有猴子来过了,也把所有桃子均分成了5分,结果多了1个,就把多出的吃了,然后拿走了其中的一份;后面的第3、4、5只猴子也是同样的道理,分5份,吃一个,拿走一份。问这堆桃子最初总共至少有几个?最后又会剩几个?

问题解析:

  第一只:5A1 + 1;

  第二只:5A2 + 1 = 4A1

  第三只:5A3 + 1 = 4A2

  第四只:5A4 + 1 = 4A3

  第五只:5A5 + 1 = 4A4

  最后剩余桃子数量:4A5

解法分析:

  如果直接计算A1——A5,势必使计算非常复杂。仔细观察,可以发现如下关系:

  5(A2 + 1) = 4(A1 + 1);

  5(A3 + 1) = 4(A2 + 1);

  5(A4 + 1) = 4(A3 + 1);

  5(A5 + 1) = 4(A4 + 1);

  => A5 + 1 = 4(A4 + 1)/5 = ... = 44(A1 + 1)/54

  => A1最小为54 - 1 = 624,此时A5 = 255

  => 桃子最初至少有3121个,最后剩1020个。

结果相关:

  等比数列:又称几何数列。是一种特殊数列。它的特点是:从第2项起,每一项与前一项的比都是一个常数。

以上是关于猴子摘桃的主要内容,如果未能解决你的问题,请参考以下文章

猴子摘桃的算法

C语言作业:用递归法怎么做猴子摘桃?知道的大哥大姐帮帮忙,我自己想破脑袋想不出来!

C语言猴子吃桃递归法

编程之美学习之最长子序列的解法

「猴子」英文怎么说?秒懂「猴子」中文意思!

5个猴子分桃