斐波那契数列

今天不发了

函数:

使用公式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循环写出斐波那契数列

推荐阅读更多精彩内容