另一个猴子吃桃子的问题

群友提出另外一个猴子吃桃子的问题

 一个猴子第一天吃掉一半桃子,第二天吃掉前一天剩下的一半零两个,第三天吃掉剩下的一半零两个,第十天只剩下一个桃子,求第一天一共吃掉多少个桃子? 
这道题我没有求第一天吃掉多少桃子,我算的是某一天有多少桃子,只要拿那时候的桃子数量除以2减去2即可。
代码如下:
<?php
$num=10;
$start=1;

for ($i=$num-1; $i >1 ; $i--)
{ 
    $start=2*($start+2);
    echo "第{$i}天剩余{$start}个<br/>";
}
$start*=2;
echo "第1天剩余{$start}个<br/>";
exit();

效果如图:

然后我发现,有一个公式,就是除了第一天以外,其余的都是前一天除以2减去2,那么问题就变的简单了。

得到规律的公式公式如下:

然后我就发现这些规律 由于需要除以2 在再减去2,不如合并进去得到减去4 再除以2

得到式子如下:

这个时候就很明朗了,我们发现虽然a不好找规律,但是加上4就成为了一个乘积的数列 由于第9天的是6 就是 10*1-4 ,得到公式 

当然第一天的要另外算,于是 n-1就等于 $num-$i 表示距离最后一天还有几天

代码如下:

<?php
$num=10;
$start=1;
for ($i=$num-1; $i >1 ; $i--)
{ 
    $start=10*pow(2,$num-$i-1)-4;
    echo "第{$i}天剩余{$start}个<br/>";
}
$start*=2;
echo "第1天剩余{$start}个<br/>";
exit();

效果图如下:

对比公式如下:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值