本文共 630 字,大约阅读时间需要 2 分钟。
以下代码展示了如何使用递归方式生成斐波那契数列:
def recur_fibo(n): """递归函数 输出斐波那契数列""" if n <= 1: return n else: return(recur_fibo(n-1) + recur_fibo(n-2))
程序逻辑解释如下:
recur_fibo(n)接受一个整数参数n,返回斐波那契数列的第n项。n小于等于1,函数直接返回n,这是因为斐波那契数列的前两项定义为0和1。n大于1时,函数递归调用自身两次:第一次获取第n-1项的值,第二次获取第n-2项的值,并将两者相加作为返回值。程序的完整实现包括输入项数和输出结果:
nterms = int(input("您要输出几项? ")) if nterms <= 0: print("输入正数") else: print("斐波那契数列:") for i in range(nterms): print(recur_fibo(i)) 运行以上代码会输出如下结果:
您要输出几项? 10 斐波那契数列: 0 1 1 2 3 5 8 13 21 34
本实现通过递归算法生成斐波那契数列,能够有效解决问题。递归方法虽然简单,但需要注意其性能问题,对于较大的`n`值可能会导致栈溢出。
转载地址:http://bktj.baihongyu.com/