问题:
有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?
问题分析:
先列出几个月的对应的兔子数目,然后看看有什么规律。
从表格中我们可以发现从3月开始,每个月的兔子数都是本月前两个月兔子个数相加。有了这个规律,我们在写程序的时候就有了思路。
在不使用递归,我们解决这个问题是使用循环去解决。
代码举例:
public class text1 {
public static void main(String[] args) {
int[] arr = new int[20];
arr[0]=1;
arr[1]=1;
for(int i = 2;i<arr.length;i++){
arr[i] = arr[i-1] + arr[i-2];
}
System.out.println(arr[19]);
}
}
当我们学习了递归之后,使用递归的思想去解决这个问题。
代码举例:
public class Test1 {
public static void main(String[] args) {
System.out.println(diGui(19));
}
public static int diGui(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return diGui(n - 1) + diGui(n - 2);
}
}
}