【原创】PHP循环非递归或递归实现斐波那契数列Fibonacci

//参数按第几位算,零是第一位,第九位21。
//0, 1, 1, 2, 3, 5, 8, 13,21
//For非递归方式
echo Fibonacci_netpc(9);
echo Fibonacci_R(9);
function Fibonacci_netpc($n)
{
	if ($n > 2) {
		$o = 0;
		$t = 1;
		for ($i = 4; $i <= $n; $i++) {
			//调换保存最后2位累加位置
			$temp = $o + $t;
			$o = $t;
			$t = $temp;
		}
		return $t + $o;
	} else {
		return $n - 1;
	}
}
//递归方式
function Fibonacci_R($n)
{
	if ($n < 3) return $n - 1;
	if ($n == 3) return 1;
	return Fibonacci_R($n - 1) + Fibonacci_R($n - 2);
}
此条目发表在服务器分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表回复