黑马程序员技术交流社区
标题:
不死神兔问题
[打印本页]
作者:
唯我独赞mo
时间:
2015-11-14 23:32
标题:
不死神兔问题
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子总数为多少?
斐波那契数列:前面相邻两项之和,构成了后一项
通项公式
注:此时a1=1,a2=1,an=a(n-1)+a(n-2)(n>=3,n∈N*)
通项公式的推导
斐波那契数列:1、1、2、3、5、8、13、21、……
如果设F(n)为该数列的第n项(n∈N+)。那么这句话可以写成如下形式:
F(1) = 1,F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3),
显然这是一个线性递推数列。
实现代码如下:
public static void main(String[] args) {
//递归实现
System.out.println(fib(20));
}
/*
* 方法:返回值类型:int参数列表:int n 出口条件:第一个月是1,第二月是1
* 规律:从第三个月开始,每个月是前两个月之和
*/
public static int fib(int n){
if(n == 1 || n == 2 ){
return 1;
}else{
return fib(n-1) + fib(n-2);
}
}
复制代码
作者:
唯我独赞mo
时间:
2015-11-15 12:55
_陈志 发表于 2015-11-15 01:12
我现在都很还没弄明白
递归啊,你把递归了解了,就明白了
作者:
大耳冬
时间:
2015-11-15 23:18
递归还没学到那~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2