js斐波那契数列
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89......
这个数列从第3项开始,每一项都等于前两项之和。
1.递归算法:
    function fib(n) {
        if (n < ) {
            return n;
        }else {
            return fib(n-) + fib(n-);
        }
    }
2.动态规划算法
    function fib(n) {
        var val = [];
        for (var i = ; i <= n; ++i) {
            val[i] = ;
        }
        if (n ==  || n == ) {
            return ;
        }else {
            val[] = ;
            val[] = ;
            for (var i = ; i <= n; ++i) {
                val[i] = val[i-] + val[i-];
            }
        return val[n-];
        }
    }
动态规划需要用到数组的原因是因为动态规划算法通常需要将中间结果保存起来。当计算fib(20)及更大的数字时,动态规划的解决方案比递归的解决方案更高效。
3.迭代法
    function fib(n) {
        var last = ;
        var nextLast = ;
        var result = ;
        for (var i = ; i < n; ++i) {
            result = last + nextLast;
            nextLast = last;
            last = result;
        }
        return result;
    }
js斐波那契数列的更多相关文章
- js 斐波那契数列(兔子问题)
		对于JS初学者来说,斐波那契数列一直是个头疼的问题,总是理不清思路. 希望看完这篇文章之后会对你有帮助. 什么是斐波那契数列 : 答: 斐波那契数列,又称黄金分割数列.因数学家列昂纳多·斐波那契(Le ... 
- js 斐波那契数列的获取和曲线的实现(每日一更)
		<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ... 
- js斐波那契数列求和
		一.递归算法 function recurFib(n) { if (n < 2) { return n; } else { return recurFib(n-1) ... 
- 斐波那契数列公式算法-JS实现
		之前算斐波那契数列都是算前两个数相加实现的 比如0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181 ... 
- javascript . 03 函数定义、函数参数(形参、实参)、函数的返回值、冒泡函数、函数的加载、局部变量与全局变量、隐式全局变量、JS预解析、是否是质数、斐波那契数列
		1.1 知识点 函数:就是可以重复执行的代码块 2. 组成:参数,功能,返回值 为什么要用函数,因为一部分代码使用次数会很多,所以封装起来, 需要的时候调用 函数不调用,自己不会执行 同名函数会覆盖 ... 
- js算法集合(二) javascript实现斐波那契数列   (兔子数列)
		js算法集合(二) 斐波那契数列 ★ 上一次我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,这次,我们来对斐波那契数列进行研究,来加深对循环的理解. Javascript实 ... 
- Tips_of_JS 之 利用JS实现水仙花数的寻找与实现斐波那契数列
		一.水仙花数 1.啥是水仙花数? 水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153) 2.利用JS实现对水 ... 
- 太原面经分享:如何用js实现返回斐波那契数列的第n个值的函数
		面试攒经验,let's go! 值此高考来临之际,闲不住的我又双叒叕出发去面试攒经验了,去了公司交待一番流程后,面试官甩给了我一张A4纸,上面写着一道js算法笔试题(一开始我并不知道这是在考察js算法 ... 
- 用js刷剑指offer(斐波那契数列)
		牛客网链接 下面介绍一下什么是斐波那契数列 js代码 知道了通项公式,那代码就非常简单了 function Fibonacci(n) { // write code here let pre = 1 ... 
随机推荐
- RSA公私钥获取模数和质数
			实际项目中,发现前端在生成公钥对象的时候并不是使用这种方式,而是通过对应的模数跟质数来构造公钥对象的,这样的话,需要进一步将生成的公钥取出对应的模数和质数.openssl.java api都可以将质数 ... 
- mat-form-field must contain a MatFormFieldControl错误的解决方法
			下面的代码竟然出错了: <mat-form-field> <input matInput placeholder="输入名称"> </mat-form ... 
- spring-data-radis错误
			org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested ... 
- Oracle exp和expdp对数据进行备份
			以下给出两个示例,详细内容需要查阅手册: exp system OWNER=ZLTX FILE=ZLTX20190123.DMP expdp system DUMPFILE=ZLTX20190123. ... 
- CentOS 7 安装MySQL5.7.25
			STEP 1. 下载 去往官方下载MySQL包.http://dev.mysql.com mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz [root@study ... 
- druid数据源连接oracle10g报错:not support oracle driver 1.0
			jdbc驱动与数据库版本不一致,去数据库服务器的安装目录(cd $ORACLE_HOME)找jdbc->lib->ojdbcX.jar 替换到你项目中即可. oracle目录lib下jar ... 
- Log4j 2使用教程一【入门】
			环境 操作系统:win10log4j2版本: 2.11.0 准备 下载jar包 官网:https://logging.apache.org/log4j/2.x/download.html 把jar包放 ... 
- java线程学习之wait方法
			wait 等待方法是让线程进入等待队列,使用方法是 obj.wait(); 这样当前线程就会暂停运行,并且进入obj的等待队列中,称作“线程正在obj上等待”. 如果线程想执行 wait 方法,线程必 ... 
- 5.1JAVA基础复习——JAVA中的静态代码块、构造代码块、构造函数、局部代码块区别
			构造代码块: 在类中定义可以给所有对象进行初始化.局部代码块: 在方法中定义属性的生命周期.静态代码块: 在类中定义用于给类调用时属性的初始化 构造函数与构造代码块的区别: 构造函数是给对应的对象进行 ... 
- for 循环,如果判断那里用到了一个函数,每次循环一次都会调用一次函数,如图
			但用高级for,可以不用每次都调用方法 
