JS 实现斐波那契数列 #15

简介: JS 实现斐波那契数列 #15

斐波那契数列


0,1,1,2,3,5,8 像这样的数列就是斐波那契数列,特点是第n项等于前两项的和。


递归实现


function fib(n) {
    if (n == 0) {
        return 0;
    }
    if (n == 1) {
        return 1;
    }
    return fib(n - 1) + fib(n - 2);
}
console.log(fib(5));


迭代实现


function fib(n) {
    var a = 0,
        b = 1,
        total = 0;
    if (n < 2) {
        return n;
    }
    for (var i = 2; i <= n; i++) {
        total = a + b;
        a = b;
        b = total;
    }
    return total;
}
console.log(fib(5));


总结


斐波那契数列最好不要用递归去实现,因为它在重复计算,而迭代计算的效率则要高很多并且时间复杂度为O(n),不信?输入个100看看?所以,面试的时候用迭代去写会让面试官更称心如意。

目录
相关文章
|
9月前
|
JavaScript
js题解(三)
js题解(三)
43 1
|
9月前
|
JavaScript
js实现二分查找
js实现二分查找
34 0
|
9月前
|
JavaScript
js题解(二)
js相关题目
25 0
|
6天前
|
JavaScript 前端开发 测试技术
了解JS递归
了解JS递归
13 1
|
1月前
|
存储 算法 JavaScript
|
1月前
|
JavaScript
js数组排序
js数组排序
20 0
|
1月前
|
JavaScript 算法
|
1月前
|
JavaScript 前端开发 搜索推荐
JS数组排序
JS数组排序
32 0
|
7月前
|
JavaScript
JS实现数组排序
JS实现数组排序
25 0
|
7月前
|
JavaScript 前端开发
js实现数组排序
js实现数组排序