js写出斐波那契数列
斐波那契数列:1、1、2、3、5、8、13、21、34、……
函数:
使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1。
for循环:
从底层向上运算,
a(0)+a(1)->a(1) //第0个数字+第1个数字=第2个数字
a(1)+a(1)->a(2) //第1个数字+第2个数字=第3个数字
a(2)+a(3)->a(5) //第2个数字+第3个数字=第4个数字
······
a(n-1)+a(n-2)->a(n)
因此,在循环中只要定义三个变量,便能将最后的f(n)求出来
function fn(n){
if(n==1|n==2){
return 1;}
//因为斐波那契数列格式为:1、1、2、3、5、8、13、21、34、......,n=1和n=2的时候都是输出1
return fn(n-1)+fn(n-2);
//不断调用自身函数,n-1是穿进去的参数的前一次,就是最后n的前一个数字。所以n-2是最后传入参数的前两个数字。
}
//用函数写出斐波那契数列
var n=parseInt(prompt('请输入一个数字'));
var a1=1;
var a2=1;
var a3=0;
for(var i=2;i<=n;i++){//因为前两个数都是1,所以要从i=2开始,就是前两个数的1+1=2,i的初始值其实是第三个数
a3=a1+a2;//第三个数等于第一个数加上第二个数
a1=a2;//第一个数就变成了之前的第二个数
a2=a3;//第二个数就变成了刚刚的第三个数
}
console.log(a3);
//使用for循环写出斐波那契数列
js写出斐波那契数列的更多相关文章
- 太原面经分享:如何用js实现返回斐波那契数列的第n个值的函数
面试攒经验,let's go! 值此高考来临之际,闲不住的我又双叒叕出发去面试攒经验了,去了公司交待一番流程后,面试官甩给了我一张A4纸,上面写着一道js算法笔试题(一开始我并不知道这是在考察js算法 ...
- js中的斐波那契数列法
//斐波那契数列:1,2,3,5,8,13…… //从第3个起的第n个等于前两个之和 //解法1: var n1 = 1,n2 = 2; for(var i=3;i<101;i++){ var ...
- Python初学者笔记:打印出斐波那契数列的前10项
问题:斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列.费波那西数列.费波拿契数.费氏数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.- ...
- 用JS,求斐波那契数列第n项的值
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 关于JS递归函数求斐波那契数列两种实现方法
百度已经解释的很详细了,但是不写注释还真是看不懂,递归,就直接套公式了,for循坏,我们就用EXCEL看一下规律 可以看到B是A+B的和,A往后就是B的值,所以我们需要第三个变量来保存他们的和,取出B ...
- 两种JS方法实现斐波那契数列
第一种方法:递归 function fibonacci(n){ if (n==0){ return 0; }else if (n==1){ return 1; } return fibonacci(n ...
- Python练习笔记——斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一 ...
- 斐波那契数列(C++ 和 Python 实现)
(说明:本博客中的题目.题目详细说明及参考代码均摘自 “何海涛<剑指Offer:名企面试官精讲典型编程题>2012年”) 题目 1. 写一个函数,输入 n, 求斐波那契(Fibonacci ...
- python之斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数 这样的一个数列:0,1,1,2,3,8,13,21,34…….. 特别指出:0不是第一项,而是第零项. 在数学上被以 递归的方法定 ...
随机推荐
- RabbitMQ_消息队列基本使用_2
简介 RabbitMQ:接受消息再传递消息,可以视为一个“邮局”. 发送者和接受者通过队列来进行交互,队列的大小可以视为无限的,多个发送者可以发生给一个队列,多个接收者也可以从一个队列中接受消息. p ...
- python 时间模块小结
python有两个重要的时间模块,分别是time和datetime time模块 表示时间的几种方法 时间元组 time.struct_time( tm_year=2016, tm_mon=7, tm ...
- Python3.6全栈开发实例[016]
16.电影打分:程序先给出几个目前正在上映的电影列表. 由用户给每个电影投票.最终将该用户投票信息公布出来 lst = ['北京遇上西雅图', '解救吴先生', '美国往事', '西西里的美丽传说'] ...
- Guide to Spring @Autowired
Guide to Spring @Autowired Spring希望由@Autowired注解的依赖在某个依赖bean被构造时是可以访问的.如果框架不能解析这个用于wiring的bean,就会抛出异 ...
- NetCDF 介绍
NetCDF 1 NetCDF 1.1概述(Overview) NetCDF (network Common Data Form) is a set of software libraries and ...
- 使用CoreData存储数据
- (void)viewDidLoad { [super viewDidLoad]; //获取模型文件的路径 NSString *path=[[NSBundle mainBundle]pathForR ...
- 每天一个Linux命令(51)ss命令
ss命令用来显示处于活动状态的套接字信息. (1)用法: 用法: ss [参数] ss [参数] [过滤] (2)功能: 功能: ss是类似nets ...
- php分类树
class Category{ public $sonName; public $parentName; public function __consturt($id,$parent_id){ $th ...
- 【leetcode刷题笔记】Word Ladder II
Given two words (start and end), and a dictionary, find all shortest transformation sequence(s) from ...
- python中完善decorator
@decorator可以动态实现函数功能的增加,但是,经过@decorator“改造”后的函数,和原函数相比,除了功能多一点外,有没有其它不同的地方? 在没有decorator的情况下,打印函数名: ...