标签:
在学递归的时候,用递归实现了一个
下面是代码
1 def fib(n): 2 if n >= 3: 3 return fib(n-1)+fib(n-2) 4 else: 5 return 1 6 print(fib(6))
发现一个很严重的问题:当数字比较小的时候还好,但是当求30以后的数字的时候,就会运行特别长的时间
所以请看下面一种方法
1 while True: 2 def fib(n): 3 result = [1,1] 4 for i in range(n-2): 5 result.append(result[-2]+result[-1]) 6 return result[-1] 7 8 9 n = input(‘你想知道第多少个斐波那契数:‘) 10 if n == ‘q‘: 11 break 12 else: 13 n = int(n) 14 print(‘result = %d‘%(fib(n)))
发现速度提升特别大,求第1000个数都可以,牛!
标签:
原文地址:http://www.cnblogs.com/timtike/p/5866989.html