📜  门| GATE CS 2021 |设置 1 |问题 8(1)

📅  最后修改于: 2023-12-03 14:58:21.779000             🧑  作者: Mango

门 | GATE CS 2021 |设置 1 |问题 8

这是一个GATE CS 2021设置1的问题8。该问题要求实现一个递归函数,该函数返回斐波那契数列中第n项的值。

背景

斐波那契数列是一个经典的数列,定义如下:

fib(0) = 0
fib(1) = 1
fib(n) = fib(n-1) + fib(n-2)  for n > 1
需求

实现函数 fib(n: int) -> int,计算并返回斐波那契数列中第n项的值。

约束
  • n > 0
  • 不允许使用循环结构(如 for、while 等)
示例
assert fib(0) == 0
assert fib(1) == 1
assert fib(10) == 55
解析

斐波那契数列可以用递归的方式实现,如下:

def fib(n: int) -> int:
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fib(n-1) + fib(n-2)

该函数的时间复杂度为O(2^n),空间复杂度为O(1)。

总结

本篇文章介绍了斐波那契数列的递归实现,并提供了相关的代码片段,希望能帮助读者更好地理解和掌握递归算法。