猴子吃桃子问题 -- 递推算法(倒推)
2014-10-27 09:40
417 查看
问题;
猴子吃桃子问题。猴子第一天摘下若干个桃,当即只一半,又多吃一个。第二天早上又将剩下的一半吃掉
一半,双多吃一个。以后每天早上都吃了前天剩下的一半零一个,到第10天早上只剩下最后一个桃。问第一天
摘了几个桃。
解题分析:
这道题是小学奥数的一道题,可以正向和逆向考虑,在编程中可以认为这种推导公式的题可以用递归解决。
这里用的是倒叙递归。
代码:
//倒推法
#include <cstdio>
#include <iostream>
total(int day, int sum)
{
if(day == 1)
return sum;
else
return total(day-1, sum*2 + 2);
}
int main()
{
printf("猴子一共摘桃%d个\n", total(10, 1));
return 0;
}
猴子吃桃子问题。猴子第一天摘下若干个桃,当即只一半,又多吃一个。第二天早上又将剩下的一半吃掉
一半,双多吃一个。以后每天早上都吃了前天剩下的一半零一个,到第10天早上只剩下最后一个桃。问第一天
摘了几个桃。
解题分析:
这道题是小学奥数的一道题,可以正向和逆向考虑,在编程中可以认为这种推导公式的题可以用递归解决。
这里用的是倒叙递归。
代码:
//倒推法
#include <cstdio>
#include <iostream>
total(int day, int sum)
{
if(day == 1)
return sum;
else
return total(day-1, sum*2 + 2);
}
int main()
{
printf("猴子一共摘桃%d个\n", total(10, 1));
return 0;
}
相关文章推荐
- 猴子吃桃子问题
- 【C语言小练习】猴子吃桃子的问题
- 猴子吃桃子问题
- 华为猴子吃桃子问题
- 5只猴子分桃子问题
- 关于猴子拿桃子的问题
- 经典的猴子吃桃问题,C语言算法,根据天数和当日桃子个数,求第一天猴子所摘桃的个数,
- java 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾, //又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。 //到第1
- 猴子吃桃子问题
- 猴子分桃子问题
- 用固定点解猴子分桃子问题
- 5个猴子摘桃子的问题程序实现
- /*题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
- 猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个 第二天早上又将剩 * 下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃
- 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第N天早上想再吃时,见只剩下一个
- 猴子分食桃子问题
- 110923-猴子分桃子问题
- 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一
- .猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,好不过瘾,又多吃了一个。第二天早上又吃了剩下的桃子的一半,又多吃了一个。以后每天都吃了前一天剩下的一半零一个,到第10天早上想再吃的时候,就剩下
- 自由落体问题也可以用编程来搞定哦!猜猜猴子摘了多少桃子?