有一对兔子,从出生后第四个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子。假如兔子都不死,计算第十个月兔子的总数?
分析:F(N) = f(n-1)+ f(n-3)。可以运用递归来解决问题。
当出生后第三个月开始生兔子: F(N) = f(n-1)+ f(n-2)
出生后第二个月开始生兔子: F(N) = f(n-1)+ f(n-1) = 2*F(n-1)
出生后第一个月开始生: !!!一个月就会生的全宇宙都是兔子。。。。
代码:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static int f(int n){
if(n==1 || n==2||n==3){
return 1;
}
return f(n-1)+f(n-3);
}
public static void main(String[] args) {
for (int i = 1; i < 11; i++) {
System.out.println(f(10));
}
}
}