/*
* 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?
* 分析:
* 对数
* 第一个月 1
* 第二个月 1
* 第三个月 2
* 第四个月 3
* 第五个月 5
* 通过分析我们得到这样的一个数列
* 1,1,2,3,5,8,13,21,...
* 找什么?
* 出口:第一项和第二项是已知的。
* 规律:从第三项开始,每一项是前两项之和。
*/
public class DiGuiDemo3 {
public static void main(String[] args) {
System.out.println(fun(20));
}
/*
* 返回值类型:int 参数列:int n 假设fun(n)表示第n个月的兔子对数。 请问,第n-1和第n-2个月的兔子分别是多少对?
* fun(n-1) fun(n-2)
*/
public static int fun(int n) {if (n == 1 || n == 2) {
return 1;
} else {
return fun(n - 1) + fun(n - 2);
}
}
}
联想思考题:
需求:用递归求下列数列的第二十项的值:
1,1,2,4,7,13,24...
明天给答案 |
|