定义函数,使用递归生成斐波那契数列 1,1,2,3,5,8,13

156 阅读1分钟

需要用到2个函数,第一个是用递归生成斐波那契数列中的每一项

第一个函数是把生成的每一项斐波那契数列,传到一个数组里面,并用顿号把这个数组分开。

先通过递归函数,得到斐波那契数列中的每一项

<script>
  // 1 1 2 3 5 8
  // 先通过递归函数,得到斐波那契数列中的每一项
  function FibNum(num) {
    // 传进去的num都是从1开始
    // 如果传进去的是1,2,返回是1
    if (num === 1 || num === 2) {
      return 1;
    }
    // 如果num是3 ,那就是数列中的第2、3项的和
    // 如果是4,那就是数列中的3、4项的和
    return FibNum(num - 1) + FibNum(num - 2);
  }

  //   通过这个FibNum(num),可以得到数列中的第num项的值
  
</script>

继续定义一个函数,把每一项的值传到一个数组里面

<script>
  function getFib(num) {
    var arr = [];
    for (var i = 1; i <= num; i++) {
      arr.push(FibNum(i));
    }
    //得到一个新的数组,并把这个数组里面的每一项用顿号、分开
    return arr.join("、");
  }

  console.log(getFib(5));
</script>