利用JavaScript打印出Fibonacci数(不使用全局变量打印斐波那契数)
来源:互联网 发布:mac pro使用教程 编辑:程序博客网 时间:2024/06/03 17:56
调用方式,比如输出第二十项:
outputFibonacci(20);
实现思路:通过数组作为存储对象,利用闭包递归取得想要的项的值。思路比较简单,效率问题,还望大家指正。
function outputFibonacci(lenght){return function Fibonacci(arrays,len){if(typeof len!=='number'||len<=1){document.write(len);return;}if(arrays.length==0){arrays[0]=0;arrays[1]=1;Fibonacci(arrays,len);}else if(arrays.length<=len){arrays.push(arrays[arrays.length-1]+arrays[arrays.length-2]);Fibonacci(arrays,len);}else{document.write(arrays[len]);}}([],lenght);}稍作完善,参考《The Good Parts》 代码量简直天壤之别啊!!!
function outputFibonacci(n){return n<2?n:outputFibonacci(n-1)+outputFibonacci(n-2)}然而如上的效率较低,再进行优化后
function outputFibonacci(n){var memo=[0,1];var fib = function (n){var result=memo[n];if(typeof result!=='number'){result=fib(n-1)+fib(n-2);memo[n]=result;}return result;};return fib;}调用方式略有不同
outputFibonacci()(20);
0 0
- 利用JavaScript打印出Fibonacci数(不使用全局变量打印斐波那契数)
- 打印斐波那契(Fibonacci)数列
- (13)Fibonacci数--斐波那契数列
- Fibonacci数(斐波那契数列)
- 打印出所有"水仙花数
- 打印出不同的数
- 打印出所有水仙花数
- 打印出所有水仙花数
- 斐波那契数 Fibonacci by Java
- 数学问题(1):杨辉三角、水仙花数、打印斐波那契数列
- 控制台打印出所有的“水仙花数”
- 打印出所有的“水仙花数”
- 打印出所有的“水仙花数”
- 打印出所有的"水仙花数"
- [算法]打印出所有的“水仙花数”
- //打印出所有的“水仙花数”.
- 打印出所有"水仙花数
- 打印出所有的“水仙花数”
- 树的重心
- Android-query使用(2)
- 依赖注入及AOP简述(二)——工厂和ServiceLocator
- 文字显示位置随着进度变化
- JavaScript Dom
- 利用JavaScript打印出Fibonacci数(不使用全局变量打印斐波那契数)
- IE8透明
- opengl 渲染管线
- Mangos源码分析(13):再谈登录服的实现
- handler 可能引发泄露
- CALayer2-创建新的层
- Mangos源码分析(14):Mangos预编译头文件及模块划分随想
- MySQL技术之旅-慢查询日志可视化平台的使用(Anemometer)
- PLSQL developer 连接不上64位Oracle 的解决方法