美文网首页
斐波那契

斐波那契

作者: 吕建雄 | 来源:发表于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