题目:古典问题:有一对兔子,从出生后第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);
- }
- }
复制代码 |
|