黑马程序员技术交流社区

标题: 不死神兔问题 [打印本页]

作者: 唯我独赞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),
  显然这是一个线性递推数列。
实现代码如下:
  1. public static void main(String[] args) {
  2.                 //递归实现
  3.                 System.out.println(fib(20));
  4.         }
  5.         /*
  6.          * 方法:返回值类型:int参数列表:int n 出口条件:第一个月是1,第二月是1
  7.          * 规律:从第三个月开始,每个月是前两个月之和
  8.          */
  9.         public static int fib(int n){
  10.                 if(n == 1 || n == 2 ){
  11.                         return 1;
  12.                 }else{
  13.                         return fib(n-1) + fib(n-2);
  14.                 }
  15.         }
复制代码

作者: 唯我独赞mo    时间: 2015-11-15 12:55
_陈志 发表于 2015-11-15 01:12
我现在都很还没弄明白

递归啊,你把递归了解了,就明白了
作者: 大耳冬    时间: 2015-11-15 23:18
递归还没学到那~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2