您好,登錄后才能下訂單哦!
這篇文章主要講解了“SpringBoot怎么實現斐波那契數列”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“SpringBoot怎么實現斐波那契數列”吧!
一般用for來迭代生成器,當list來處理,不是直接生成一個列表(數據過大),我們保存的是算法,通過算法一個個推導
f=(i**2 for i in range(1,10))
函數實現生成器(yield語句),推導算法復雜,用列表生成式for循環無法實現,將return變成yeild
def func():print('aaaa')print("bbbbb")print('ccccc')yield 5print('zzzzz')yield 6f=func()#生成器,生成的東西當作list理解next(f)next(f)next(f)# for i in f:# print(i)
訪問:生成器,生成的東西當作list理解
1.生成器可以通過next(f)來實現訪問,每次next到yield停止,下次從yield后繼續
2.while 1:
next(f)一直訪問但是最后會報錯StopIteration
3. for i in f:
print(i)
斐波那契數列
法1:函數的形式
def fib(count):index=0x,y=0,1while index < count:print(y)x,y=y,x+y index+=1fib(9999)
法2:生成器形式
def fib(count):index=0x,y=0,1while index < count:yield y x,y=y,x+y index+=1return 'sunck is a good man'g=fib(9)##生成器# for i in g:##for 有個缺點就是執行到yield就停止了,拿不到generator的返回值,如果想拿要捕獲StopIteration# print(i)#用whilewhile 1:try:ret=next(g)print(ret)except StopIteration as e:print("返回值:",e.value)break
法3 遞歸50次就卡死了
import sys#遞歸50次就卡死了sys.setrecursionlimit(1000000) # 例如這里設置為一百萬def f(n):if n==1 or n==2: return 1else:return f(n-1)+f(n-2)n=int(input())a=f(n)print(a%10007)
感謝各位的閱讀,以上就是“SpringBoot怎么實現斐波那契數列”的內容了,經過本文的學習后,相信大家對SpringBoot怎么實現斐波那契數列這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。