题目描述:
猴子第一天摘了若干个桃子,当即吃了一半,它还不解馋,于是又多吃了一个;第二天,它吃了剩下桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第 10 天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子?
分析与解答:
本题可以采用逆向思维,从后往前推断,发现其中有相同的地方,即出现递推公式,可以采用递归方法。令 S10=1,可以得出 S9=2×(S10+1),简化罗列关系为:
S9=2×S10+2
S8=2×S9+2
…
Sn=2×Sn+2
实现代码如下:
<?php
$s = 0;
$n = 1;
for($i=1;$i<10;$i++){
$s=($n+1)*2;
$n=$s;
}
echo "第一天共摘{$s}个桃子";
程序的运行结果为
第一天共摘1534个桃子