问题简述
斐波那契数列(Fibonacci sequence),又称黄金分割数列,以兔子繁殖为例子而引入,故又称为兔子数列),指的是这样一个数列:1、1、2、3、5、8、13、21、34…以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
问题变形
斐波那契在《算盘书》中提出了一个有趣的兔子问题:一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子?
代码实现
public class Fac{
public static void main(String[] args){
System.out.println(grow(5));
}
public static int grow(int n){
System.out.println("grow("+n+")");
if(n==1 || n==2){
return 1;
}
return grow(n-1)+grow(n-2);
}
}
案例变形
需求:使用递归求n!
代码实现
public class Jie {
public static void main(String[] args) {
System.out.println(Jie(5));
}
public static double Jie(int n) {
if (n==0) {
return 1;
}
return n*Jie(n-1);
}
}