1. /*
    2. * @lc app=leetcode.cn id=509 lang=javascript
    3. *
    4. * [509] 斐波那契数
    5. */
    6. // @lc code=start
    7. /**
    8. * @param {number} n
    9. * @return {number}
    10. */
    11. var fib = function (n) {
    12. if (n === 0) return 0;
    13. if (n === 1) return 1;
    14. return fib(n - 1) + fib(n - 2);
    15. };
    1. /*
    2. * @lc app=leetcode.cn id=509 lang=javascript
    3. *
    4. * [509] 斐波那契数
    5. */
    6. // @lc code=start
    7. /**
    8. * @param {number} n
    9. * @return {number}
    10. */
    11. var fib = function (n, arr = []) {
    12. if (arr[n]) return arr[n];
    13. if (n === 0) return 0;
    14. if (n === 1) return 1;
    15. arr[n] = fib(n - 1, arr) + fib(n - 2, arr);
    16. return arr[n];
    17. };
    1. var fib = function (n) {
    2. let a = 0,
    3. b = 1
    4. if (n < 2) return n
    5. for (let i = 0; i <= n - 2; i++) {
    6. const c = a + b
    7. a = b
    8. b = c
    9. }
    10. return b
    11. };