题目
兔子问题
有一对大兔子 每个月繁衍 一对小兔子(一公一母)
小兔子需要1个月生长为大兔子
现有一对小兔子 一年后 有多少对?
代码
递归:
public static int fib(int N) {
if (N == 1) return 1;
if (N == 2) return 1;
System.out.println("求第" + N + "个月的兔子数量");
System.out.println("转化为求第" + (N - 1) + "个月和第" + (N - 2) + "个月的兔子数量");
return fib(N - 1) + fib(N - 2);
}
迭代:
public static int fib1(int N) {
// 6 —— 0 1 2 3 4 5
// fib(0) = 0 有时需要处理
if (N <= 1) return 1;
int[] arr = new int[N];
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
return arr[N - 1];
}