首页 > 代码库 > 算法练习2---斐波那契数列java版

算法练习2---斐波那契数列java版

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子, 假如兔子都不死,问每个月的兔子总数为多少?

数列:1   1   2   3   5   8   13......

可以总结出公示为F(n)=F(n-1)+F(n-2)

java程序代码实现如下:

public class ArithTest {
    public static void main(String[] args) {
        ArithTest at = new ArithTest();
        // 算法一:显示前20个月每月兔子数量
        for(int n=1;n<=20;n++){
            System.out.println("第"+n+"个月兔子数量为"+at.f(n));
        }
    /* 算法一:斐波那契数列
     * 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子, 假如兔子都不死,问每个月的兔子总数为多少?
     * 规律:1 1 2 3 5 8 13 ...
     * f(n)=f(n-1)+f(n-2)
     */
    public int f(int n){
        if(n==1|n==2){
            return 1;
        }else{
            return f(n-1)+f(n-2);
        }
    }
}

执行结果为:

第1个月兔子数量为1
第2个月兔子数量为1
第3个月兔子数量为2
第4个月兔子数量为3
第5个月兔子数量为5
第6个月兔子数量为8
第7个月兔子数量为13
第8个月兔子数量为21
第9个月兔子数量为34
第10个月兔子数量为55
第11个月兔子数量为89
第12个月兔子数量为144
第13个月兔子数量为233
第14个月兔子数量为377
第15个月兔子数量为610
第16个月兔子数量为987
第17个月兔子数量为1597
第18个月兔子数量为2584
第19个月兔子数量为4181
第20个月兔子数量为6765

 

算法练习2---斐波那契数列java版