【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次。
样例推导:
代码:
基础班《函数、递推、递归》,递推第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++解题报告】求最大公约数问题(辗转相除法)
- acm pku 1321解题报告 棋盘问题
- 贪心算法解汽车加油问题——算法解题报告
- 堡垒问题(贪心) 解题报告
- Problem1删数问题解题报告
- hdoj 1207(解决n=64问题)解题报告
- [dp问题] Poj 1014 & Zoj 1149 (Dividing) 解题报告(转)
- 0-1背包问题,poj 3624 Charm Bracelet动态规划-解题报告,增加最优路径构建
- 0-1背包问题(动态规划) 解题报告
- 智力题解题报告No.12 倒油 倒酒 倒水问题
- POJ1321 棋盘问题 解题报告
- 动态规划解乘法表问题——算法解题报告
- POJ 2811 熄灯问题 解题报告
- POJ 2692 假币问题 解题报告
- 装载问题(西农Oj) 解题报告
- 贪心算法解磁盘文件最优存储问题——算法解题报告
- POJ 2746 约瑟夫问题 解题报告
- pku 1321 深搜 棋盘问题 解题报告
- 【原】 POJ 3750 小孩报数问题 Joseph相关问题详解 解题报告
- hut 1574 组合问题 解题报告