题解-猴子吃桃问题
猴子吃桃子问题:有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!以后每天猴子都吃其中的一半,然后再多吃一个。当到第10天时,想再吃时(即还没吃)发现只有1个桃子了。问题:最初共多少个桃子?
思路分析: 逆推
day = 10 – > 1 peach
day = 9 --> (day10 peach + 1)*2 = 4 peach
day = 8 -->(day9 peach + 1)*2 = 10 peach
…
前一天的桃子等于后一天的桃子加1乘2
java
public class test {
public static void main(String[] args) {
method peach = new method();
int m = peach.get_peach(1);
System.out.println(m);
}
}
class method {
public int get_peach(int n) {
if (n == 10) {
return 1;
} else if (n >= 1 && n <= 9) {
return (get_peach(n + 1) + 1) * 2;
} else {
System.out.println("day在1-10");
return -1;
}
}
}
c++
#include <iostream>
using namespace std;
int get_peach(int n)
{
if (n == 10)
return 1;
else if (n >= 1 && n <= 9)
{
return (get_peach(n + 1) + 1) * 2;
}
else
{
cout << "输入的值必须在1-10之间" << endl;
}
}
int main(void)
{
int m = get_peach(1);
cout << m << endl;
return 0;
}