来自于牛客网用户“fanhk”的评论,原文链接https://www.nowcoder.com/questionTerminal/c6c7742f5ba7442aada113136ddea0c3
在下觉得解法挺好的,便斗胆写在博客中存下,若有任何侵犯之处,请指出,必当处理
题目
现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
代码
PHP版本,很简单,阅读应该没问题
function Fibonacci($n)
{
// write code here
$current = 0;
$next = 1;
while($n-- > 0) {
$next += $current;
$current = $next - $current;
}
return $current;
}
可以看出,这是利用两个变量反复相加,始终保存正在计算的两个项,其中$current相当于$array[$n],$next相当于$array[$n+1]。只保存两个变量,节省了内存空间(在牛客网的测试平台上,如果保存整个数列,需要空间为8000K左右,而此方法只需4000K左右,空间减半),但因为没有保存整个数列,所以有其局限性,只能得到指定项的值。