# 【2.5.8】改进的迭代版、θ(1)空间的斐波那契数列算法
"""
算法思想: a = 0 b = 1
i 从 2 到 n :
b = a + b
a=b-a
输出的 a 是Fib(n)
"""
def Fib_1Space(n):
a = 0
b = 1
if n <= 1:
if n == 0:
return a
else:
return b
else:
for i in range(2, n + 1):
b = a + b
a = b - a
# 注意 返回语句的 位置: 在 for 循环结束之后
return b
if __name__ == '__main__':
str_n = input("【求斐波那契数列 Fib(n) 的前 n项,比如 Fib(0) 是 0, Fib(1) 是 0, 1 】请输入n:")
n = int(str_n)
print("您输入的 n 是:{}".format(n))
for i in range(0, n + 1):
result = Fib_1Space(i)
print("斐波那契数列 Fib({}) = {}".format(i, result))
print("主程序运行结束。")