题解-猴子吃桃问题

猴子吃桃子问题:有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!以后每天猴子都吃其中的一半,然后再多吃一个。当到第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;
}