您的位置:首页 > 编程语言 > C语言/C++

【C++解题报告】猴子吃枣问题

2016-12-31 23:13 232 查看
题目来源:

    基础班《函数、递推、递归》,递推第3题。

题目描述:

    猴子吃枣问题:猴子摘了一堆枣,第一天吃了一半,还嫌不过瘾,又吃了一个;第二天,又吃了剩下的一半零一个;以后每天如此。到第n天,猴子一看只剩下一个了。问最初有多少个枣子?

输入格式:
  
    输入n。

输出格式:

    输出最后的枣数。

输入样例:
   
    10

输出样例:

    1534

输出格式:

    一个正整数,为最初枣子数。

题目思路:

    得知最后第十天的枣数,求最初第一天的枣数,这里想到利用递推算法。第10天吃一个,则第9天吃(1+1)*2=4个。再循环9次(10-1次,因为第10天没有吃)即可求出第1天的枣数。设第n+1天吃x个,推出第n天吃的数量是第n+1天(x+1)*2。再循环n-1次。
    样例推导:



代码:

//猴子吃枣问题
#include<iostream>          //头文件
using namespace std;
int main()                  //定义主函数
{
int n,sum=1;            //定义变量 n为天数 sum为枣数,初始值为第十天的1
cin>>n;                 //输入n
for(int i=n-1;i>0;i--)  //循环n-1次
sum=2*(sum+1);      //进行递推
cout<<sum;              //输出结果
return 0;
}




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 递推