zoukankan      html  css  js  c++  java
  • 利用JavaScript打印出Fibonacci数(不使用全局变量)

    汤姆大叔的博客里看到了6个基础题目:本篇是第4题 - 利用JavaScript打印出Fibonacci数(不使用全局变量)

    解题关键:

    1、Fibonacci数列的规律

    2、递归

    解点1:Fibonacci数列的规律

    1,1,2,3,5,6,13,19,32....  //从第3项开始,每项都是前两项之和

    解点2:递归

    递归是一个复杂的概念,此题可以不用递归解决,但题目要求不能使用全局变量,所以我只能想到递归方法。简单的说,递归就是函数调用函数本身,但递归一定要有一个出口,否则就无限调用下去……下面对Fibonacci数列进行一下罗列并找规律:

    第1项,1
    第2项,第1项 + 第0项
    第3项,第2项 + 第1项
    .....
    依此类推,那么可得
    
    Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)

    那么它的出口处就在1这里,即求的项数小于2时,直接返回1,而不再调用自己(一旦不调用自己了,也就意味着递归结束)

    以下是该题的实现代码:

    function Fibonacci(n) { //显示Fibonacci的前n项
        function Fibo(i) { //求Fibonacci的第i项
            return i<2 ? i : Fibo(i-1) + Fibo(i-2); //此处定义了递归的规则
        }
        for(var i=1; i<=n; i++) {
            console.log( Fibo(i) );
        }
    }
    Fibonacci(5);  //1,1,2,3,5

    此题解答完毕!

  • 相关阅读:
    我用到的存储过程
    yii2图片处理扩展yii2-imagine的使用
    yii2——自定义widget
    YII2之 Scenario
    PHP获取某月天数
    docker版wordpress
    RBAC中 permission , role, rule 的理解
    mysql开启远程连接
    windows系统和ubuntu虚拟机之间文件共享——samba
    php生成随机字符串
  • 原文地址:https://www.cnblogs.com/langzs/p/6637547.html
Copyright © 2011-2022 走看看