分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

js斐波那契数列

发布时间:2023-09-06 01:11责任编辑:苏小强关键词:js

  斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89......

  这个数列从第3项开始,每一项都等于前两项之和。

1.递归算法:

 ???function fib(n) { ???????if (n < 2) { ???????????return n; ???????}else { ???????????return fib(n-1) + fib(n-2); ???????} ???}

2.动态规划算法

 ???function fib(n) { ???????var val = []; ???????for (var i = 0; i <= n; ++i) { ???????????val[i] = 0; ???????} ???????if (n == 1 || n == 2) { ???????????return 1; ???????}else { ???????????val[1] = 1; ???????????val[2] = 2; ???????????for (var i = 3; i <= n; ++i) { ???????????????val[i] = val[i-1] + val[i-2]; ???????????} ???????return val[n-1]; ???????} ???}

动态规划需要用到数组的原因是因为动态规划算法通常需要将中间结果保存起来。当计算fib(20)及更大的数字时,动态规划的解决方案比递归的解决方案更高效。

3.迭代法

 ???function fib(n) { ???????var last = 1; ???????var nextLast = 1; ???????var result = 1; ???????for (var i = 2; i < n; ++i) { ???????????result = last + nextLast; ???????????nextLast = last; ???????????last = result; ???????} ???????return result; ???}

js斐波那契数列

原文地址:http://www.cnblogs.com/zhang-wang/p/7531315.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved