设计函数fib,每调用一次就返回Fibonacci数列的下一个值,即第一次调用返回1,第二次调用返回1,第三次调用返回2,第四次调用返回3……根据提示,完成fib函数,不得使用全局变量。
时间: 2023-06-08 16:04:15 浏览: 166
C语言程序设计-用函数求fibonacci数列前n项的和;说明:fibonacci数列为数列的第一项值为1,第二项
5星 · 资源好评率100%
好的,下面是完整的代码:
```python
def fib():
a, b = 0, 1
while True:
yield b
a, b = b, a + b
f = fib()
print(f.__next__()) # 第一次调用返回1
print(f.__next__()) # 第二次调用返回1
print(f.__next__()) # 第三次调用返回2
print(f.__next__()) # 第四次调用返回3
```
这里使用了 Python 的生成器(generator)来实现。每次调用 `fib()` 函数都会创建一个新的生成器对象,并从上一个生成器在中断的地方继续执行。因此每次调用 `__next__()` 方法就会返回 Fibonacci 数列的下一个值。注意,这里不能使用全局变量来保存状态,需要使用局部变量 `a` 和 `b` 来维护状态。
阅读全文