推荐答案
-- -------------------- ---- ------- -------- ------------ - -- -- -- -- ------ -- -- -- --- -- ------ -- --- - - -- - - -- --- ---- - - -- - -- -- ---- - --- ---- - - - -- - - -- - - ----- - ------ -- -
本题详细解读
斐波那契数列简介
斐波那契数列是一个经典的数学问题,数列中的每个数字都是前两个数字的和。数列的前几项如下:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
代码解析
边界条件处理:
- 如果
n <= 0
,返回0
,因为斐波那契数列的第0项是0。 - 如果
n === 1
,返回1
,因为斐波那契数列的第1项是1。
- 如果
迭代计算:
- 使用两个变量
a
和b
来存储前两个斐波那契数。 - 通过循环从第2项开始计算,每次迭代更新
a
和b
的值,直到计算到第n
项。
- 使用两个变量
返回结果:
- 最终返回
b
,即第n
项的斐波那契数。
- 最终返回
时间复杂度
- 该算法的时间复杂度为
O(n)
,因为只需要一次循环即可计算出第n
项的斐波那契数。
空间复杂度
- 该算法的空间复杂度为
O(1)
,因为只使用了常数个额外空间来存储中间结果。
适用场景
- 该算法适用于需要计算斐波那契数列中某一项的场景,尤其是当
n
较大时,迭代方法比递归方法更高效。