猴子吃桃问题

题目描述
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。

解题思路:
1.我们可以用数学问题反向推出答案,也就是从第n天回推到第1天的桃子数。
**规律:**倒数第二天的桃子数,是倒数第一天的2m+2(m为倒数第一天的桃子数量),即倒数第二天为2m+2;

第几天: N N-1 N-2 N-3 …
桃子剩余数:1 4 10 22

2.利用for循环来求出答案。
3.注意循环的开始终止条件(当然是可以更换的)
错误的思路:
1.由于受数学列方程的影响,想到可以正向推,但是当你在草稿本上写了之后,你就会发现补不能操作,于是便只能反向找规律!
注意事项:
1.注意for的循环次数。
2.注意桃子数 s 的算术式。

参考代码:

#include"iostream"
#include "cmath"
using namespace std;
int main(){
    int N,sum=1;
    cin>>N;
    for(int i=N-1;i>0;i--){//初始是i=n-1,由于sum=1,已经是第N天了
        sum=sum*2+2;//主要在于此规律的推导
    }
    cout<<sum;
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值