菲波那切数列:

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

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

<span style="font-size:14px;"> 菲波那切数列: 
	n=1 f(1)=1
	n=2 f(2)=1
	f(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  n2
					f3= 1 + 1;//将n2换到n1位置,将f3给n2
					f4=n2 + f3;//将n2中的f3换到n1位置,将f4给n2
					f5=f3 + f4;//将n2中的f4换到n1位置,将f5给n2
				*/
			}
			return fn;
		}
	}
	console.log(getFib(100));
</span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值