【从零单排之微软面试100题系列】19之Fibonacci数列

原题参见july大神博客系列【微软面试100题】


题目描述:用尽量快的方法求解Fibonacci数列第n项。


分析思路:(本题亦见于《剑指offer》面试题9)

显然适用递归的方法会比较慢,也不是面试官的考点,那就从迭代的思路考虑。

long long Fibonacci(unsigned int n)
{
	int result[2] = {0,1}; 
	if(n<2) return result[n];
	
	long long fibMiddle1 = 0;		//用来保存中间值
	long long fibMiddle2 = 1;		//用来保存中间值
	long long fibResult = 0;		//用来保存结果
	
	for(unsigned int i = 2; i <= n; ++i)
	{
		fibResult = fibMiddle1 + fibMiddle2;
		fibMiddle1 = fibMiddle2;
		fibMiddle2 = fibResult;
	}
	return fibResult;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值