【练习】斐波那契数列
项目简介
斐波那契数列
知识模块
- Python 编程语言
知识点
- 分支语句-if
- 递归算法
- 函数返回值与参数处理
受众
- 初级测试开发工程师
- 初级Python开发工程师
作业要求
编写一个Python程序,使用递归算法,生成并输出斐波那契数列的前n项,其中n是用户指定的正整数。斐波那契数列,又称黄金分割数列,指的是:1、1、2、3、5、8、13、21、34....从第三个数开始,每个数字都是前两个数字之和。
解题思路
-
当 n 小于等于 0 时,返回 0。
-
当 n 等于 1 或 2 时,返回 1。
-
否则,计算第 n 项斐波那契数列,即前两项的和。
-
通过递归调用来计算第 n-1 项和第 n-2 项的和,直到 n 为 1 或 2。
完整代码
def fibonacci(n):
if n <= 0:
return 0
elif n == 1 or n == 2:
return 1
else:
return fibonacci(n - 1) + fibonacci(n - 2)
# 计算斐波那契数列的第 10 项
n = 10
fib_result = fibonacci(n)
print(f"斐波那契数列的第 {n} 项为:{fib_result}")
代码讲解
-
def fibonacci(n)
: 这是定义一个名为fibonacci
的函数,它接受一个参数n
,用于计算斐波那契数列的第 n 项。 -
if n <= 0
: 这是一个条件判断语句,用于检查n
是否小于等于 0。 -
return 0
如果n
小于等于 0,返回 0。 -
elif n == 1 or n == 2
: 这是另一个条件判断语句,检查n
是否等于 1 或 2。 -
return 1
如果n
等于 1 或 2,返回 1。 -
return fibonacci(n - 1) + fibonacci(n - 2)
这是递归的部分。当n
大于 2 时,递归地调用fibonacci
函数来计算第n-1
项和第n-2
项的和,然后返回结果。 -
fib_result = fibonacci(n)
调用fibonacci
函数,传入参数n
,计算斐波那契数列的第 10 项。 -
print(f"斐波那契数列的第 {n} 项为:{fib_result}")
打印计算结果,显示斐波那契数列的第 10 项的值。