美文网首页
斐波那契

斐波那契

作者: 吕建雄 | 来源:发表于2020-01-19 09:57 被阅读0次

/*

经典的生兔子游戏:

说如果兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来;

假如所有兔都不死,那么一年以后可以繁殖多少对兔子呢?

*/

class Fibonacii {

    public static void main(String[] argv){

        int result = fibonacii(12);

        System.out.println(result);

    }

    //斐波那契函数实现(递归调用)

    public static int fibonacii(int n){

        if (n<2) {

            return n==0?0:1; 

        }

        //这里的fibonacii就是函数自己,它在调用自己

        return fibonacii(n-1)+fibonacii(n-2);

    }

}

代码实现下载地址

写递归程序最怕的就是陷入永不结束的无穷递归中,所以,每个递归定义必须至少有一个条件,满足时递归不再进行,即不再引用自身而是返回值退出

其实使用递归实现的代码使用迭代方式也能实现;

二者各有优略:

递归使用的是选择结构,递归能使程序的结构更清晰、更简洁、更容易让人理解;但是大量的递归调用会建立函数的副本,会耗费大量的时间和内存。

迭代使用的是循环结构,不需要反复调用函数和占用额外的内存。

相关文章

网友评论

      本文标题:斐波那契

      本文链接:https://www.haomeiwen.com/subject/ccqrzctx.html