斐波那契数列python代码

斐波那契数列是一个经典的数学问题,可以用递归或迭代的方式来实现。

递归方式:

python
def fibonacci_recursive(n): if n <= 0: return "输入值必须为正整数" elif n == 1: return 0 elif n == 2: return 1 else: return fibonacci_recursive(n-1) + fibonacci_recursive(n-2) # 测试 n = 10 # 替换为你想要的斐波那契数列长度 result_recursive = [fibonacci_recursive(i) for i in range(1, n+1)] print(result_recursive)

迭代方式:

python
def fibonacci_iterative(n): if n <= 0: return "输入值必须为正整数" fib_list = [0, 1] while len(fib_list) < n: fib_list.append(fib_list[-1] + fib_list[-2]) return fib_list[:n] # 测试 n = 10 # 替换为你想要的斐波那契数列长度 result_iterative = fibonacci_iterative(n) print(result_iterative)

你可以根据需要选择递归或迭代的方式。值得注意的是,递归方式在计算大数值时可能会变得较慢,因为它涉及到重复计算相同的子问题。而迭代方式则更有效率。

如果你关心性能,并希望进一步优化斐波那契数列的计算,可以考虑使用动态规划来避免递归中的重复计算。

动态规划方式:

python
def fibonacci_dynamic_programming(n): if n <= 0: return "输入值必须为正整数" fib_list = [0, 1] for i in range(2, n): fib_list.append(fib_list[-1] + fib_list[-2]) return fib_list # 测试 n = 10 # 替换为你想要的斐波那契数列长度 result_dynamic_programming = fibonacci_dynamic_programming(n) print(result_dynamic_programming)

这种方式将中间结果存储在列表中,避免了递归中的重复计算,提高了性能。

无论选择哪种方式,都要根据具体情况来决定。递归方式简单易懂,但在大数值情况下可能效率较低;迭代方式和动态规划方式性能更好,但可能稍显复杂。根据实际需求和代码的可读性做出选择。