不死神兔
代码两种方式
public static void main(String[] args) {
// 有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。
// 已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。
// 假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?
// 数组实现
int[] rabbits = new int[12];
rabbits[0] = 1;
rabbits[1] = 1;
for (int i = 2; i < rabbits.length; i++) {
rabbits[i] = rabbits[i - 1] + rabbits[i - 2];
}
int month = month(12);
System.out.println("兔子一年内(12个月)能繁殖成:" + rabbits[11] + "对");
System.out.println("兔子一年内(12个月)能繁殖成:" + month + "对");
}
/**
* 不死神兔递归代码实现
* @param num 月份
* @return
*/
public static int month(int num) {
if (num == 1 || num == 2) {
return 1;
} else {
return (month(num - 1)) + (month(num - 2));
}
}