实例4:斐波那契数列
斐波那契数列又称为兔子数列,因数学家列昂纳多·斐波那契以兔子繁殖为例子引入,这个数列中的数据满足以下公式:
F(1)=1, F(2)=1, F(n)= F(n-1) + F(n-2) (n>=3,n∈N*)
本实例要求编写程序,实现根据用户输入的数字输出斐波那契数列的功能。
实例目标
- 明确递归函数中的边界条件和递归公式
- 熟练地定义递归函数
实例分析
根据实例描述中的公式,可以定义一个递归函数fibonacci (n),该函数中n表示指定的斐波那契数,边界条件为n=1或n=2,递归公式为fibonacci (n-1)+ fibonacci (n-2)。
代码实现
def fibonacci(n):
if n == 1 or n == 2:
return 1
else:
return fibonacci(n - 1) + fibonacci(n - 2)
num = int(input('请输入一个正整数: '))
for i in range(1, num + 1):
print(fibonacci(i), end=' ')
以上代码首先定义了一个包含1个参数n的递归函数fibonacci(),该函数中使用if-else语句分别处理了n为1、2或n-1的情况,然后接收用户输入的一个正整数,最后使用循环打印了每次调用fibonacci()函数的结果,最终得到包含n个元素的斐波那契数列。
代码测试
运行程序,在控制台输入“3”之后的结果如下所示:
请输入一个正整数: 3
1 1 2
再次运行程序,在控制台输入“5”之后的结果如下所示:
请输入一个正整数: 5
1 1 2 3 5