def feibo(n):
a = 0
b = 1
for i in range(n - 1):
a, b = b, a + b
return a
第二种:
count = 0
import time
def feibo2(n):
if n == 1:
return 0
if n == 2:
return 1
global count
print(count)
time.sleep(1)
count += 1
return feibo2(n - 1) + feibo2(n - 2)
第一种循环实现轻松计算到你可以想象到的N位
第二种递归实现,这个递归深度可以自己测一下,代码中定义了一个全局变量统计这个函数调用的次数。我测随手输入51时,半天没停下来,就关闭了。想考验电脑性能的可以去掉上面的sleep方法,你会有惊喜的。总之:工作中,能不用递归就不用递归。
原文:http://blog.51cto.com/14094286/2324025