A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唯我独赞mo 中级黑马   /  2015-11-14 23:32  /  406 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

3 个回复

倒序浏览
_陈志 发表于 2015-11-15 01:12
我现在都很还没弄明白

递归啊,你把递归了解了,就明白了
回复 使用道具 举报
递归还没学到那~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马