斐波拉契

2020-05-26  本文已影响0人  Ag_fronted

1、原始版

function fib1(number) {
    if (number === 0 || number === 1) {
        return 1
    } else {
        return fib(number) + fib(number - 1)
    }
}

2、三个值来回搞

function fib2(n) {
    let top = 1, bottom = 0, res = 0
    for (let i = 0; i < n; i++) {
        res = top + bottom
        bottom = top
        top = res
    }
    return res
}

3、保存数组

function fib3(number) {
    var arr = [1, 2]
    for (var i = 2; i < number; i++) {
        arr[i] = arr[i - 1] + arr[i - 2]
    }
    return arr[number - 1]
}
上一篇 下一篇

猜你喜欢

热点阅读