有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(菲波拉契数列)
package com.date808;
import java.util.Scanner;
/**
* @apiNote 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个
* 月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(菲波拉契数列)
*/
public class RabbitFibonacci {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("请输入你想要获取到第几天数字的数量:");
int day = scanner.nextInt();
int rabbitNumber = getRabbitNumber(day) * 2;
System.out.println(day + "天后的兔子数量为:" + rabbitNumber + "只");
} catch (Exception e) {
e.printStackTrace();
}
}
public static int getRabbitNumber(int day) {
if (day > 0) {
if (day == 1) {
return 1;
}
if (day == 2) {
return 1;
}
return getRabbitNumber(day - 1) + getRabbitNumber(day - 2);
}
return -1;
}
}