二十一、猴子吃桃问题



<?php
/*
猴子吃桃问题:
有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!
以后每天猴子都吃其中的一半,然后再多吃一个。
当到第十天时,想再吃时(即还没吃),发现只有1个桃子了。
问题:最初共多少个桃子?
分析:
天  数量
10  1
9  (1+1)*2=4
8  (4+1)*2=10
7  (10+1)*2=22
。。。。。。
第n天   (第n+1天的个数+1)*2
提示:可以用递归。
*/
//功能:获取到第n天的桃子数
function taozi( $n){
 if( $n == 10) return 1;
 return (taozi($n+1) + 1) * 2; //一般规律
}
echo "第一天的桃子数为:" . taozi(1);

//使用递推来实现:
$yestoday = 1; //表示前一天的桃子数,当然也表示已知的第10天(初值)
for($i = 9; $i >= 1; --$i){
 $result = ($yestoday+1)*2;
 $yestoday = $result;
}
echo "<br />第一天的桃子数为:" . $result;
//理解一下以下代码:
$result = 1;
for($i = 9; $i >= 1; --$i){
 $result = ($result+1)*2;
}
echo "<br />第一天的桃子数为:" . $result;
//再理解一下以下代码:
for($i = 10; $i >= 1; --$i){
 $result = $i==10 ? 1 : ($result+1)*2;
}
echo "<br />第一天的桃子数为:" . $result;

echo "<br />第5天的桃子数为:" . taozi(5);
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值