//1,1,2,3,5,8,13,21这个数列 斐波那契 数列(肥波哪弃)
//得到第9项是几?
/*******************************111111111递归的思想***********************************/
function digui(index){
//index-2=0 index的最小值是3
if (index<0) { //负数为0 我自己写的
return 0;
}
if (index<=2) {//第一项 第二项都为1,直接范围内 都返回1 终止条件 这是第二步!!!
return 1;
}
return digui(index-1)+digui(index-2);//先看后面的 几项,当前项=前一项+前二项 这是第一步!!!!
}
console.log(digui(-1));//0
console.log(digui(7));//13
console.log(digui(8));//21

/*******************************2222222迭代(循环)的思想***********************************/
/*
反正不好理解,记住就好了。
1 1 2 三个数的话,前2个数 ,1和1,需要循环1次 得到2
1 1 2 3 四个数的话,前3个数 ,1和1和2,需要循环2次(在上次循环次数+再和第三个数循环一次) 得到结果3
.... n个数需要循环n-2次 3个值的故事,加上 循环次数 的搞鬼 //索引必须从3开始最好了(包含),因为已经设置 1 2了
//index为1 2,是不对的 因为循环没走 我还是返回的thirdnumResult=0;
*/
function forloop(index){ //刚
var firstnum=1; //第一个值
var secondnum=1;//第二个值
var thirdnumResult=0;//结果 第三个值
for (var i = 0; i < index-2; i++) { //循环1次,得到第三个数 2次得到第四个数 index-2次得到第index个数
thirdnumResult=firstnum+secondnum; firstnum=secondnum; //现在的3个值的第一个,已经变成了原来三个中的第二个
secondnum=thirdnumResult;//现在的3个值的第二个,已经变成了来三个中的第三个,结果
}
return thirdnumResult;
}
console.log(forloop(-1));//0
console.log(forloop(1));//0
console.log(forloop(2));//0
console.log(forloop(3));//2
console.log(forloop(8));//21
//必须从3开始最好了,因为已经设置 1 2了
//index为1 2,是不对的 因为循环没走 我还是返回的thirdnumResult=0;

javascript:算法之斐波那契数列的更多相关文章

  1. Reverse反转算法+斐波那契数列递归+Reverse反转单链表算法--C++实现

    Reverse反转算法 #include <iostream> using namespace std; //交换的函数 void replaced(int &a,int & ...

  2. 剑指offer-第二章算法之斐波拉契数列(青蛙跳台阶)

    递归与循环 递归:在一个函数的内部调用这个函数. 本质:把一个问题分解为两个,或者多个小问题(多个小问题相互重叠的部分,会存在重复的计算) 优点:简洁,易于实现. 缺点:时间和空间消耗严重,如果递归调 ...

  3. [BSGS算法]纯水斐波那契数列

    学弟在OJ上加了道"非水斐波那契数列",求斐波那契第n项对1,000,000,007取模的值,n<=10^15,随便水过后我决定加一道升级版,说是升级版,其实也没什么变化,只 ...

  4. PHP算法之斐波那契数列(递归)

    /*斐波那契数列 源代码分析 f(x) = 1 ; 当 x < 2 ; f(x) = f(x-1)+f(x-2); 当 x >= 2 ; 通项式为:fn ={((1+根号5)/2)^n-( ...

  5. Python算法_斐波那契数列(10)

    写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0,   F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 ...

  6. 斐波那契数列公式算法-JS实现

    之前算斐波那契数列都是算前两个数相加实现的 比如0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181 ...

  7. 算法 递归 迭代 动态规划 斐波那契数列 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. js算法集合(二) javascript实现斐波那契数列 (兔子数列)

    js算法集合(二)  斐波那契数列 ★ 上一次我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,这次,我们来对斐波那契数列进行研究,来加深对循环的理解.     Javascript实 ...

  9. Javascript数组求和的方法总结 以及由斐波那契数列得到的启发

    一次面试中,面试官要求用三种不同的Javascript方法进行一个数字数组的求和,当时思来想去只想到了使用循环这一种笨方法,因此面试比较失败,在这里总结了六种Javascript进行数组求和的方法,以 ...

随机推荐

  1. linux 添加新硬盘的方法

    在服务器上把硬盘接好,启动linux,以root登陆. 比如我新加一块SCSI硬盘,需要将其分成三个区: #fdisk /dev/sdb 进入fdisk模式: Command (m for help) ...

  2. MFC MSBDutyTable下载地址

    点击此处跳转到下载地址 简明教程: 对于非制表人,只需要添加空余时间-新建,然后点星期和节数有课的那个按钮,勾选自己有课的周数.全部勾好后,生成空余时间表.然后查看自己的空余时间表,并导出,发给制表人 ...

  3. git 学习笔记5--rm & mv,undo

    rm 删除文件 rm <file> #Unix删除文件 git rm <file> # git删除文件 git rm -f <file> # git强制删除文件 g ...

  4. memcached启动脚本以及telnet测试

    memcached -m 1024 -u root -p 11211 -c 1024 -P /var/memcached.pid -d memcached 1.2.2 -p <num> T ...

  5. fragment中嵌入viewpager的问题

    今天终于解决了这个问题 原来问题是出现于viewpager在这里的layout_height不能设置为"wrap_content" 之前我遇到空白的问题,我还以为是管理的问题 所以 ...

  6. ural 2071. Juice Cocktails

    2071. Juice Cocktails Time limit: 1.0 secondMemory limit: 64 MB Once n Denchiks come to the bar and ...

  7. 【原】iOS学习46之第三方CocoaPods的安装和使用(通用方法)

    本文主要说明CocoaPods的安装步骤.使用说明和常见的报错即解决方法. 1. CocoaPods 1>  CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具. ...

  8. 【原】iOS多线程之NSThread、NSOperationQueue、NSObject和GCD的区别

    区别: Thread: 是这几种方式里面相对轻量级的,但也是使用起来最负责的,你需要自己管理thread的生命周期,线程之间的同步.线程共享同一应用程序的部分内存空间, 它们拥有对数据相同的访问权限. ...

  9. 【Cocos2d-x游戏开发】浅谈游戏中的坐标系

    无论是开发2D还是开发3D游戏,首先必须弄清楚坐标系的概念.在Cocos2d-x中,需要了解的有OpenGL坐标系.世界坐标系和节点坐标系.  1.UI坐标系 IOS/Android/Windows ...

  10. div基础

    1. 写在后面的样式优于前面,会把前面的覆盖掉! 2.三角形的造法:width:0; height:0;然后设置border-left   border-right  border-top  bord ...