当前位置:首页python > 正文

python写斐波那契数列

作者:野牛程序员:2023-08-10 08:26:36python阅读 2613

斐波那契数列是一个经典的数列,其中每个数是前两个数的和,起始于 0 和 1。以下是几种在 Python 中生成斐波那契数列的方法:

  1. 使用循环:

def fibonacci_iterative(n):
    fib_sequence = [0, 1]
    for i in range(2, n):
        next_fib = fib_sequence[-1] + fib_sequence[-2]
        fib_sequence.append(next_fib)
    return fib_sequence

n = 10
result = fibonacci_iterative(n)
print(result)
  1. 使用递归(效率较低,因为存在重复计算):

def fibonacci_recursive(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)

n = 10
result = [fibonacci_recursive(i) for i in range(n)]
print(result)
  1. 使用迭代器生成斐波那契数列:

def fibonacci_generator(n):
    a, b = 0, 1
    for _ in range(n):
        yield a
        a, b = b, a + b

n = 10
fib_sequence = list(fibonacci_generator(n))
print(fib_sequence)
  1. 使用记忆化递归(避免了递归中的重复计算):

def fibonacci_memoization(n, memo={}):
    if n in memo:
        return memo[n]
    if n <= 0:
        memo[n] = 0
    elif n == 1:
        memo[n] = 1
    else:
        memo[n] = fibonacci_memoization(n - 1, memo) + fibonacci_memoization(n - 2, memo)
    return memo[n]

n = 10
result = [fibonacci_memoization(i) for i in range(n)]
print(result)

这些方法中,使用循环或迭代器的方法通常在效率上更优,因为它们避免了递归中的重复计算。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击