小问题之斐波那契数列探索
1. 引言
在编程学习中,从简单问题入手是接触经典算法和编程技巧的好方法。接下来我们将探索一些能用几个相对简短的函数解决的简单问题,这些问题虽小,但能让我们探索到有趣的解题技巧,就把它们当作一个不错的热身吧。
2. 斐波那契数列
2.1 斐波那契数列定义
斐波那契数列是这样一组数:除了第一个和第二个数外,任何一个数都是前两个数之和。数列如下:
0, 1, 1, 2, 3, 5, 8, 13, 21…
该数列中第一个斐波那契数的值是 0,第四个数的值是 2。要得到数列中任意第 n 个斐波那契数的值,可以使用公式:
fib(n) = fib(n - 1) + fib(n - 2)
2.2 首次递归尝试
上述计算斐波那契数列中某数的公式(如图 1.1 所示)是一种伪代码形式,可以轻松转换为递归的 Python 函数。(递归函数是指调用自身的函数)。我们首次尝试编写一个函数来返回斐波那契数列中给定的值,代码如下:
def fib1(n: int) -> int:
return fib1(n - 1) + fib1(n - 2)
我们尝试调用这个函数并传入一个值来运行它:
if __name__ == "__main__":
print(fib1(5))
哎呀!如果我们尝试运行 fib1.py
超级会员免费看
订阅专栏 解锁全文
1373

被折叠的 条评论
为什么被折叠?



