java猴子吃桃问题递归
时间: 2023-10-14 13:14:01 浏览: 145
Java 猴子吃桃问题是一个经典的递归问题,题目描述如下:
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 n 天早上想再吃时,见只剩下一个桃子了。问第一天共摘了多少桃子?
这道题可以使用递归解决。假设第 n 天剩下一个桃子,那么第 n-1 天剩下的桃子数量为 `(1+1)*2=4`,即第 n-1 天开始时有 4 个桃子。那么第 n-2 天剩下的桃子数量为 `(4+1)*2=10`,即第 n-2 天开始时有 10 个桃子,以此类推,可以得到第一天开始时有 1534 个桃子。
下面是 Java 代码实现:
```java
public class MonkeyPeach {
public static int peach(int n) {
if (n == 1) {
return 1;
}
return (peach(n - 1) + 1) * 2;
}
public static void main(String[] args) {
int n = 10; // 假设第 10 天剩下一个桃子
int total = peach(n);
System.out.println("第一天共摘了 " + total + " 个桃子");
}
}
```
相关问题
猴子吃桃递归java
这是一个经典的递归问题,可以用Java代码实现。假设有n个桃子,猴子第一天吃了一半加一个,即(n/2+1)个桃子,第二天又吃了剩下的一半加一个,以此类推,直到第十天只剩下一个桃子。那么最初有多少个桃子呢?
Java代码实现:
```
public static int eatPeach(int day) {
if (day == 10) {
return 1;
} else {
return (eatPeach(day + 1) + 1) * 2;
}
}
```
调用 `eatPeach(1)` 即可得到最初的桃子数。
答案:1534个桃子。
java递归实现猴子吃桃
好的,以下是Java递归实现猴子吃桃的代码:
```
public class MonkeyEatPeach {
public static int eatPeach(int day) {
if (day == 1) {
return 1;
} else {
return (eatPeach(day - 1) + 1) * 2;
}
}
public static void main(String[] args) {
int day = 10;
int peachNum = eatPeach(day);
System.out.println("第" + day + "天猴子一共摘了" + peachNum + "个桃子。");
}
}
```
阅读全文