首页 > 其他分享 >菲波那契数列

菲波那契数列

时间:2024-02-29 16:59:03浏览次数:10  
标签:正整数 数列 res limit 菲波 那契

描述
菲波那契数列是指这样的数列:数列的第一个和第二个数都为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

相关文章

  • Accurately computing running variance —— 已知两个数列各自的均值和方差,如何快速
    原内容来自:https://www.johndcook.com/blog/standard_deviation/计算公式:该种计算方式可以只保存历史数据的平方和,与历史数据的和。相关前文:已知两个数列各自的均值和方差,如何快速求出两个数列拼合后的均值和方差......
  • 已知两个数列各自的均值和方差,如何快速求出两个数列拼合后的均值和方差
    问题:数列A为[1,2,3,4,5,6,7,8,9],已知数列A的均值和方差和个数为mean_x,var_x,size_x数列B为[20,21,22,23,24,25,26,27,28,29],已知数列B的均值和方差和个数为mean_y,var_y,size_y现在将数列A与数列B拼合为数列Z,则数列Z为[1,2,3,4,5,6,7,8,9,20,......
  • 第十七节:动态规划详解(斐波那契数列、)
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......
  • 备选数列 / 函数
    FibonacciSequenceFormula\[F_{1}=1\]\[F_{2}=1\]\[F_{i}=F_{i-1}+F_{i-2}(i\geq3)\]List\[F_1=1\]\[F_2=1\]\[F_{3}=2\]\[F_{4}=3\]\[F_{5}=5\]\[F_{6}=8\]\[F_{7}=13\]\[F_{8}=21\]\[F_{9}=34\]......
  • 665.非递减数列
    完成度:partial-accepted问题:有些情况未考虑到这道题要考虑两个方面,1、数组中最多只能存在多少元素满足nums[i]>nums[i+1]使得数组是一个非递减数列2、修改这个元素后的数列是否是个非递减数列我做题只考虑到第一个条件使得题目只有部分满足条件。所以需要考虑nums[i]和nums[i+......
  • 数列的异或和(题解)
    题目样例样例输入5512345113135036113135样例输出0257二进制运算二进制运算的优先级小于四则运算,所以在与四则运算同时出现时,注意加括号按位与(&)在二进制下,相同位的数都为1时,这一位的结果为1,任意一个不是1或都是0,则为0(eg:0100110&0010111=000......
  • 数列的异或和
    如果a^b=c,则c^a=b,c^b=aa^b=b^a,(a^b)^c=a^(b^c)a^b^b=a0^a=a,a^a=0数据:n:数列长度m:询问次数a[]:原数列c[]:树状数组函数:a[x]修改为yvoidadd(intx,inty){inti=x;while(i<=n){c[i]^=a[x];//还原......
  • P8248 简单数列 题解
    首先,圈重点:$1\len\le500$所有元素在$1\sim4$之间任意连续的连续子串不相同只要输出一种答案即可于是我们可以得到的是:由第一点和第二点可以看出此题可以写搜索解决。由第三点我们可以得到一种剪枝方式,就是如果目前数字放入后会产生相同的连续的连续子串。由第四点......
  • P2042 [NOI2005] 维护数列 题解
    题目链接:维护数列比较不好码的题,首先确保自己会一种文艺平衡树的书写,这点因人而异,比较推荐初学者学\(fhq\)平衡树,坑比较少,比较好码,写平衡树合并、持久化类的题时,也比较好写。注意到空间需求比较大,还涉及删除,我们的删除用各种树类数据结构中最常用的回收标记用于新的节点开辟。......
  • P1182 数列分段 Section II
    原题链接作为二分答案的入门题非常合适。很典型的二分答案。但是这题有一个坑点,left的值不能设为0这种确定的值,而是应该设为这个数组的最大值。这道题警示了我二分答案的一个重要前提:确定合理的二分区间。题解首先,判断单调性,对于一个最大值mid,如果能够满足check(),那么mid+1,mid+......