Lua协程实现Fibonacci算法

image

费波拉且数的算法如图所示:

image

所以a和b分别保存了前两次的结果,每次for循环调用generator都从yield这一行代码恢复然后进行a, b = b, a+b操作。然后判断a是否小于等于n决定返回结果。

如果不用coroutine.wrap,我们可以这样写,效果是一样的,代码稍显啰嗦:

image

《Lua协程实现Fibonacci算法》有一个想法

发表评论