: j, P1 Z, G5 i k" |" p; Tdef fibonacci_recursive(n):; ~4 F/ r& m$ G8 z' [
if n <= 0: ' B! x0 R0 }% Z* h7 M0 H return 0 " i; a$ F" u, P1 Y. J4 I5 K; u elif n == 1: U" J' {2 \6 ?9 s return 15 _. v& l: J9 f
else: ' q2 d3 F& v6 r6 n return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)* N q. N3 ?) l! u- v; X" A
) c. C: Z; I* @1 V/ f这个递归函数将根据差分方程 F(n) = F(n-1) + F(n-2) 计算斐波那契数列的第 n 项。但是,递归方法效率较低,因为它会重复计算相同的子问题,导致指数级的时间复杂度。# K' P8 v, b& \8 H y. k
/ ^( x5 l$ W2 D4 F- Z2.循环方法: ( _6 T5 D2 `! L d/ G 0 }# m6 W% L6 J4 \: Jdef fibonacci_iterative(n): 0 B( B$ K% M: S! P. P if n <= 0:* l8 R j# N3 ?+ o
return 0& i& f g: ? ^5 \" x- V& v
elif n == 1: 5 M- j: j2 I* V/ B, X% w return 11 b# e8 K2 N; M
$ c7 y) @- F* C( D6 R. n4 T* M* l fib = [0] * (n + 1); }8 `/ [1 X2 g8 {, x
fib[1] = 15 d) v- @+ R- u% S6 t1 T8 x& x8 B
; r g+ ^0 ], Q, r) w' h: _ for i in range(2, n + 1):/ }0 B# `2 r, Z
fib[i] = fib[i-1] + fib[i-2]9 |1 Z5 C- ^4 F: L, k& A
7 x: {, {: e7 M
return fib[n]% l9 ~8 C. e4 l z+ u; U
% f( k' A P: q& T: q
这个迭代方法使用一个列表来存储计算过的斐波那契数,避免了递归中的重复计算,因此效率更高,具有线性时间复杂度。 7 Q |, t* I/ {6 m6 n( b) O1 ]6 z你可以选择使用递归或迭代方法来计算斐波那契数列的特定项,具体取决于你的需求和性能要求。如果需要计算大量的斐波那契数,迭代方法通常更有效。 - N) j0 _ ]0 `" k7 C 9 D! e' h$ R6 ~. A r1 a2 M4 G( o5 [+ u