7 S7 @9 S m9 f; G6 L" |$ a1 edef fibonacci_recursive(n):) ?$ ?/ _. w: `/ T& ?5 h! }% E
if n <= 0:3 I- v1 z5 N9 U# a( _
return 0" n; L# p/ A A) D; T
elif n == 1: 0 A! s+ R3 [0 H" O return 1+ p% {2 Y5 F, H1 X* t2 q
else: 5 P7 v. r* [, {8 u% b return fibonacci_recursive(n-1) + fibonacci_recursive(n-2) - N+ Z3 P# Z' a+ B4 q4 h* U" W" q+ t/ l; j f" ~
这个递归函数将根据差分方程 F(n) = F(n-1) + F(n-2) 计算斐波那契数列的第 n 项。但是,递归方法效率较低,因为它会重复计算相同的子问题,导致指数级的时间复杂度。0 L) f! B7 {+ _3 ?3 S5 F8 W
+ W, t. r, n* d; y
2.循环方法: 0 J$ m& }( q. V* j7 k3 ~$ ? 6 R) A3 h, h2 N7 q' e4 m# g+ N& adef fibonacci_iterative(n): ( Y4 Z" `9 e/ v; _5 _ if n <= 0: $ m) i" l8 x/ u4 F& A( e! K return 0- q; x% J0 g' T3 a; h( ?6 b
elif n == 1: ; v: w5 H& T9 q5 `; F: M+ s, m return 1- m4 R) d G1 T% j! f2 D
% `$ e3 k4 Y5 g: X8 Z2 X
fib = [0] * (n + 1) " Z' y, n& ^) {6 V7 [) M, L6 Y fib[1] = 1# x2 e( c. z. @) m. L( v) @/ I% Q
9 o0 y0 p+ f* f c% q for i in range(2, n + 1): d+ F4 C; a1 Y3 x3 g+ l fib[i] = fib[i-1] + fib[i-2] 0 H7 v' O6 b. W; Y i. {- B( P L% ~! s: N/ p8 V
return fib[n]$ X( Q% F% q# X I7 P& X6 I3 t