今天我们来使用Python实现递归算法求指定位数的斐波那契数列
首先我们得知道斐波那契数列是什么?
- 斐波那契数列又叫兔子数列
- 斐波那契数列就是一个数列从第三项开始第三项的值是第一项和第二项的和依次类推
其次我们再来看递归算法是什么?
递归就是如果函数(子程序)包含了对其自身的调用,该函数就是递归的
话不多说上案例:
第一种方法:不使用递归算法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#首先定义一个新的列表来储存最后的结果
new_list = []
# 然后让用户输入指定位数
my_put = int ( input ( "请输入使用递归算法求指定位数的斐波那契数列的位数: " ))
# 利用for循环来遍历数组
for idx in range (my_put):
# 利用if判断第使得第一位和第二位都为1
if idx = = 0 :
new_list.append( 1 )
elif idx = = 1 :
new_list.append( 1 )
# 第三次的时候 当idx等于二的时候 然后第三项的话 应该的是第一项和第二项的和第一项的索引是0 第二项的索引是1
#但是上面if判断以后 下面从idx为二的时候开始
# 所以应该是索引为idx-2和索引为idx-1的相加得出第三项
else :
new_list.append(new_list[idx - 2 ] + new_list[idx - 1 ])
# 最后输出最后的数列
print (new_list)
|
第二种方法:使用递归算法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
def get_num(n):
# 获取斐波拉契数列中第n个数字的值
if n = = 1 or n = = 2 :
return 1
return get_num(n - 1 ) + get_num(n - 2 )
# 把获取的斐波拉契数字存放到列表中
nums = []
for i in range ( 1 , 9 ):
nums.append(get_num(i))
# get_num获得一个斐波拉契数字
print (nums)
|
两种方法最后的运行结果都为:
请输入使用递归算法求指定位数的斐波那契数列的位数: 9
[1, 1, 2, 3, 5, 8, 13, 21, 34]
总结
到此这篇关于利用Python实现斐波那契数列的文章就介绍到这了,更多相关Python实现斐波那契数列内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/XVJINHUA954/article/details/107580323