描述
菲波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数K,要求菲波那契数列中第k个数是多少。
输入描述:
输入一行,包含一个正整数k。(0<k<47)
输出描述:
输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小
我们设定两个变量代表 前两个数分别是x和y(1,1),另外用一个变量z来保存两个数相加的值。当z获得下一个两个数相加的值,就是前一步x和后一步y的值的时候,将它赋给y,x指向上一步y的值。
使用代码来实现
limit = int(input())
x = 1
y = 1
res = [x,y] # 用一个数组来保存,不参与循环。
while True:
z = x + y # 两个相加的值
x = y
y = z
res.append(z)
if len(res) == limit:
break
print(res[-1])
使用python语法糖来写,就不需要有一个中间变量了。
limit = int(input())
x = 1
y = 1
res = [x, y]
while True:
x = res[-2] # 因为是局部变量需要设置两个变量,它们不会存储到下一个回合
y = res[-1]
x, y = y, x + y
res.append(y)
if len(res) == limit:
breaka
print(res[-1])
标签:正整数,数列,res,limit,菲波,那契
From: https://www.cnblogs.com/codingsaveWorld/p/18044605