斐波那契数列

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……

在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。


📐 数学公式

递推公式:F(n) = F(n-1) + F(n-2)
公式证明(运用场景):

摆砖头:
 
 n = 0   -->  1种
 n = 1   -->1种
 n = 2   -->  ▋▋   〓 2种 
 n = 3   -->  ▋▋▋    ▋〓     〓 ▋ 3

📌 JavaScript

参考代码:index.js

/**
 * 斐波那契数列的查找(迭代)
 * @param {Number} num - 要查找的数字的索引(第n个数)
 * @returns  {Number} 输出值
 */
export function fibonacciIterator(num) {
    let a = 1, b = 0, temp;
    
    while (num >= 0) {

        /* undefined, 1, 1, 2, 3, 5 */
        console.log(temp);

        temp = a;
        a = a + b;
        b = temp;
        num--;
        
    }


    return b;
}



/**
 * 斐波那契数列的查找(递归)
 * @param {Number} num - 要查找的数字的索引(第n个数)
 * @returns  {Number} 输出值
 */
export function fibonacci(num) {
  if (num <= 1) return 1;

  return fibonacci(num - 1) + fibonacci(num - 2);
}

测试:test.js

import { fibonacci } from './index';


/* 输出: 8 */
console.log( fibonacci(5) );