欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

运用Python实现斐波那契数列

程序员文章站 2023-02-17 08:02:49
运用Python实现斐波那契数列今天我们来使用Python实现递归算法求指定位数的斐波那契数列首先我们得知道斐波那契数列是什么?斐波那契数列又叫兔子数列斐波那契数列就是一个数列从第三项开始第三项的值是第一项和第二项的和依次类推其次我们再来看递归算法是什么?递归就是如果函数(子程序)包含了对其自身的调用,该函数就是递归的话不多说上案例:第一种方法:不使用递归算法#首先定义一个新的列表来储存最后的结果new_list = []# 然后让用户输入指定位数my_put = int(inp...

运用Python实现斐波那契数列

今天我们来使用Python实现递归算法求指定位数的斐波那契数列

首先我们得知道斐波那契数列是什么?

  • 斐波那契数列又叫兔子数列
  • 斐波那契数列就是一个数列从第三项开始第三项的值是第一项和第二项的和依次类推

其次我们再来看递归算法是什么?

递归就是如果函数(子程序)包含了对其自身的调用,该函数就是递归的

话不多说上案例:

第一种方法:不使用递归算法

#首先定义一个新的列表来储存最后的结果
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)

第二种方法:使用递归算法

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]

本文地址:https://blog.csdn.net/XVJINHUA954/article/details/107580323