0 1 1 2 3 5 …

递归

function fibonacci ( num ){if ( num === 0 ) return 0if ( num === 1 ) return 1return fibonacci ( num-1 ) + fibonacci ( num-2 )
}

会重复执行部分计算
如 fibonacci(10) =fibonacci(9) + fibonacci(8) , fibonacci(9) = fibonacci(8) + fibonacci(7),fibonacci(8)被重复执行 ,代码复杂
时间复杂度 O(2^n)
空间复杂度 O(n)

递归优化(尾递归)

尾递归:如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。
数列 0 1 2 3 5 8 … 台阶 等

function fibonacci (n) {if (n <= 0) return 0;function fn(n, a, b) {if (n == 1) return aelse return fn(n - 1, b, a + b)}return fn(n, 1, 2)
}

时间复杂度 O(n)
函数调用 n-1次
空间复杂度 O(n)
占用n-1个内存空间

for循环

数列 1 3 4 7 11 18 …

function fibonacci( num ) {if ( num <= 0 ) return 0;if ( num === 1 ) return 1;if ( num === 2 ) return 3;let a = 1 ;let b = 3 ;let result = a + b; for ( let f = 3; f < num; f++){a = b;b = result;result = a + b;} return result
}

1.时间复杂度 O(n)
程序循环了n-3次

2.空间复杂度 O(1)
该程序中创建了3个变量

变态青蛙

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

n=0 0 f(0)
n=1 有 1 种 f(1) =1
n=2 有 2 种 f(2) = f(1) + f(0)
n=3 有 4 种 f(3) = f(2) + f(1) + f(0)
n=4 有 8 种 f(4) = f(3) + f(2) + f(1) + f(0) 又:
        (f(3) = f(2) + f(1) + f(0)) 所以:
      f(4) = f(3) + f(3)

function btqw(n) {if (n == 0) return 0let result = 1for (let a = 1; a < n; a++) {result *=2;}return result
}

js 斐波那契—卢卡斯数列 例子 以及 变态青蛙相关推荐

  1. 斐波那契数列在计算机的应用,斐波那契(Fibonacci)数列的几种计算机解法

    题目:斐波那契数列,又称黄金分割数列(F(n+1)/F(n)的极限是1:1.618,即黄金分割率),指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--.在数学上,斐波纳契数列以如下 ...

  2. [CS101] 转载:浅议Fibonacci(斐波纳契)数列求解

    原文转载自林健随笔的"浅议Fibonacci(斐波纳契)数列求解" Fibonacci 数列 描述了动物繁殖数量.植物花序变化等自然规律.作为一个经典的数学问题,Fibonacci ...

  3. 著名的斐波那契额数列,1 1 2 3 5 8输出第n项

    著名的斐波那契额数列 1 1 2 3 5 8输出第n项 var n = parseInt(window.prompt('请输入n的值:'));var first = 1,second = 1,thir ...

  4. 【递推】HDU -2018 母牛的故事斐波那契兔子数列

    函数之递归的应用 母牛的故事 (这个问题还有很多类似的,比如种树,每一年种的树品质在改变,当然区别在于树不能生孩子.. 相应的人类达到法定年龄就可以生孩子,这个和母牛问题一样,只不过时间间隔变化了. ...

  5. c语言水仙花数素数,【C语言】斐波那契分数数列和、水仙花数、素数

    1. 斐波那契分数数列的前n项之和 斐波那契分数数列为2+3/2+5/3+8/5+13/8+- #include"stdio.h" //斐波那契分数:下一个分数的分母是前一个分数的 ...

  6. php 斐多纳契数列,斐波那契神奇数列与波浪理论的完美重合(摘选)

    斐波那契神奇数列与波浪理论的完美重合(摘选) 一.斐波那契数列为波浪理论的结构基础 艾略特,波浪理论的开山祖师,在1934年公开发表波浪理论,指出股市走势依据一定的模式发展,涨落之间,各种波浪有节奏地 ...

  7. 斐波那契(Fibonacci)数列计算器设计

    资源下载地址:https://download.csdn.net/download/sheziqiong/85734538 资源下载地址:https://download.csdn.net/downl ...

  8. java兔子,Java斐波那契兔子数列

    本篇文章帮大家学习java斐波那契兔子数列,包含了Java斐波那契兔子数列使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. 斐波那契数列指的是这样一个数列 0, 1, 1, ...

  9. js 斐波那契数列(兔子问题)

    对于JS初学者来说,斐波那契数列一直是个头疼的问题,总是理不清思路. 希望看完这篇文章之后会对你有帮助. 什么是斐波那契数列 : 答: 斐波那契数列,又称黄金分割数列.因数学家列昂纳多·斐波那契(Le ...

最新文章

  1. 【BZOJ】1013 [JSOI2008]球形空间产生器sphere
  2. 残差网络(Residual Networks, ResNets)
  3. python监听器_监听器 - python成长中 - 博客园
  4. wxWidgets:wxApp类用法
  5. Python实例讲解 -- 解析xml
  6. 水星路由器DNS服务器未响应,水星路由器进不去设置怎么办
  7. Python系列文章
  8. CVPR 2019 CLIC 图像压缩挑战赛冠军方案解读
  9. java numberformat_Java NumberFormat 类的详解及实例
  10. 终极算法:机器学习和人工智能如何重塑世界笔记(转)
  11. ACL 2022 主会长文论文分类整理
  12. todo Java注解
  13. html添加空隙,html空隙
  14. 公司来了个首席架构师,服务器缩减一半,性能反而提升7倍!跪了...
  15. 再不跳槽,应届毕业生拿的都比我多了!
  16. 2019多用户商城系统如何选,国内主流B2B2C商城对比
  17. 双目立体视觉Bouguet矫正算法详解
  18. 关于ubuntu系统不显示wifi图标或WiFi无法连接问题解答
  19. LaTeX复选框实现
  20. Latex中文字体字号对应

热门文章

  1. OS发展史中各操作系统的形成、发展和特点
  2. import numpy出现ImportError: DLL load failed: 找不到指定的模块的解决方案
  3. 80端口web服务攻击痕迹
  4. CEC循环生态社区答疑XAG到底有多好的价值前景
  5. Asterisk 使用札记
  6. Mock.mock()生成模拟数据
  7. no diagrams overlap selections问题解决
  8. 图像分割与提取:交互式前景提取(附OpenCV代码实现)
  9. VR-DANN: 联合视频解码与AI处理
  10. SLAM专题(6)-- 非线性优化