Java_斐波那契数列_兔子生兔子算法

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368……


特别指出:第0项是0,第1项是第一个1。


这个数列从第三项开始,每一项都等于前两项之和。



方法一、基础循环写法

package test;
/**
 * 
 * @author laoshifu
 * 2021年12月8日
 */
public class Action {
    public static void main(String[] args) {
        int zero=0;
        int one=1;
        int two=1;
        //注:从1月份开始有数值,故而从1开始
        for (int i = 1; i < 10; i++) {
            two=zero+one;
            zero=one;
            one=two;
        }
        System.out.println(two);
    }
}

Java_斐波那契数列_兔子生兔子算法

方法二、递归写法

package test;
/**
 * 
 * @author laoshifu
 * 2021年12月8日
 */
public class Action {
    public static void main(String[] args) {
        System.out.println(dfs(10));
    }
    public static int dfs(int i){
        if(i==0){
            return 0;
        }
        if(i==1||i==2){
            return 1;
        }
        return dfs(i-1)+dfs(i-2);
    }
}


Java_斐波那契数列_兔子生兔子算法

递归消耗时间:

Java_斐波那契数列_兔子生兔子算法


很明显,这类操作不适合用递归操作。

希望能大家所帮助。

上一篇:10+实战课程看透面向对象的三大特性:封装、继承和多态


下一篇:文件的其他操作 | Python从入门到精通:高阶篇之五十二