这篇文章主要讲解了“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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。