递归方法编写斐波那契数列python_Python递归函数与斐波那契数列

本文介绍了Python中的递归函数,以斐波那契数列为实例,讨论了递归在解决复杂问题时的简化作用。通过对比不同递归实现方式,展示了递归在内存占用和执行效率上的问题。此外,还探讨了Python的最大递归深度,并通过二分查找算法展示了如何在有序列表中高效地查找目标值。
摘要由CSDN通过智能技术生成

在定义一个函数时候,只需知道其终止的条件,无需知道其执行方法,仅需在函数中调用函数本身即可,这种魔性的写法就叫做递归函数,江湖上有一句:人能理解循环,神能理解递归。

0x00 递归函数与斐波那契数列

递归函数有时候可以将复杂的问题,变的比较简单,复杂的过程交给计算机去完成。最完美的例子就是斐波那契数列。

#斐波那契

#0, 1, 1, 2, 3, 5, 8, 13,

def fibonacci(n):

if n <=1:

return n

else:

ret = fibonacci(n-1)+fibonacci(n-2)

return ret

ret = fibonacci(30)

print(ret)

通过在我们定义的函数中调用函数本身从而来算出过最后我们需要的结果。不过当我们输入一个数字较大的结果时候,发现控制台并不能输出结果。这是因为调用的次数实在是太大了。所以递归次数过多的函数,可能就不太适合用递归来解决了。其主要的缺点就是太过于占用内存,当然不可否他的有点,让我们的代码变的很简单。

0x01 更完美的斐波那契数列

虽然用斐波那契数列可以较为容易的理解了递归函数的使用。之前也说,当需要知道特别靠后的数值的时候,那么递归次数很变的很多,因而不太适合用递归函数来解决,所以可以考虑使用别的方法来完成代码。

def fibonacci(n):

x,y = 0,1

count = 0

while count

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值