菲波那切数列:

来源:互联网 发布:mac系统装win8最新方法 编辑:程序博客网 时间:2024/05/16 10:08

题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

1. 程序分析: 兔子的规律为数列 1,1,2,3,5,8,13,21....

<span style="font-size:14px;"> 菲波那切数列: n=1 f(1)=1n=2 f(2)=1f(n)=f(n-1)+f(n-2)*/function getFib(n){//获得斐波那契数列中第n个数/*递归if(n==1){return 1;}else if(n==2){return 1;}else{return getFib(n-1)+getFib(n-2);//递归: 效率极低//解决: 用循环代替递归!}*//*循环*/var n1=1,n2=1,fn=0;if(n<3){return 1}else{for(var i=3;i<=n;i++){//i从3开始,到<=n结束,i++fn=n1+n2;n1=n2;n2=fn;/*   n1  n2f3= 1 + 1;//将n2换到n1位置,将f3给n2f4=n2 + f3;//将n2中的f3换到n1位置,将f4给n2f5=f3 + f4;//将n2中的f4换到n1位置,将f5给n2*/}return fn;}}console.log(getFib(100));</span>


0 0