递归思想 斐波那契数列 & 用JS的延迟函数实现间歇函数的效果

194 阅读1分钟

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)

JavaScript代码如下:

//1.通过递归 求斐波拉契数列第n项
    function fib(n) {
      if(n===0) return 0  
      if(n===1) return 1
      return fib(n-1) + fib(n-2)
    }
    
//2.下面要实现每隔一秒在控制台打印斐波拉契数列第n项
      let time = 0
      //2.1 通常的做法是用间歇函数每隔一秒执行一次函数
      setInterval(function(){
        console.log(fib(time))
        time++
      },1000)

      //2.2 如果禁用setInterval(),
      //通过递归 用延迟函数setTimeout()也可以实现同样的效果
      function showNum() {
        console.log(fib(time))
        time++
        setTimeout(showNum,1000)
      }
      // showNum()