python_實現_斐波那契額函數


在學遞歸的時候,用遞歸實現了一個

下面是代碼

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個數都可以,牛!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM