用java写已知有一对兔子,每个月可以生一对兔子,而小兔子一个月后又可以生一对小兔子(比如:2月份出生的小兔子4月份可以生育)。也就是说,兔子的对数为:第一个月1对,第二个月2对,第三个月3对,第四个月5对.....假设兔子的
时间: 2024-09-12 12:07:44 浏览: 53
Java递归算法经典实例(经典兔子问题)
这个兔子繁殖的问题实际上描述的是著名的斐波那契数列。斐波那契数列是这样的一个数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...,其中从第三项开始,每一项都是前两项之和。在这个兔子繁殖问题中,我们可以这样理解:每个月的兔子对数就是斐波那契数列中的一项。
斐波那契数列的递推公式可以表示为:
```
F(n) = F(n-1) + F(n-2)
```
其中,`F(0)=0`, `F(1)=1`。
用Java编写代码来计算第n个月的兔子对数,可以通过递归或循环的方式来实现。
以下是一个使用循环方式实现的Java代码示例:
```java
public class RabbitPairs {
public static void main(String[] args) {
int month = 10; // 假设我们要计算第10个月的兔子对数
System.out.println("第" + month + "个月的兔子对数为: " + fibonacci(month));
}
// 使用循环计算斐波那契数列的第n项
public static int fibonacci(int n) {
if (n <= 0) {
return 0;
}
if (n == 1) {
return 1;
}
int prePre = 0; // F(n-2)
int pre = 1; // F(n-1)
int fib = 0; // F(n)
for (int i = 2; i <= n; i++) {
fib = prePre + pre; // 计算当前项
prePre = pre; // 更新F(n-2)
pre = fib; // 更新F(n-1)
}
return fib;
}
}
```
阅读全文