描述
菲波那契数列是指这样的数列:数列的第一个和第二个数都为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])
posted on 2024-02-29 16:43  逢考必过好吗秋梨膏  阅读(56)  评论(0)    收藏  举报