【python基础刷题--4.斐波那契数列】

本文详细解析了斐波那契数列的两种代码实现方法,包括基础的递归函数和对输入值处理的优化。讨论了奇技淫巧以及输入格式处理,并提及了动态规划作为更优解法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

斐波那契数列
在这里插入图片描述

Code

-法1

def count(n):
    a,b=1,1
    for i in range(n-1):
        a,b=b,a+b
    return a
value=[]
n=int(input())
for i in range(n):
    value.append(int(input().strip()))
for i in range(n):
    y=value[i]
    a=count(y)
    print(a)

代码解析

  • 定义一个函数 count(n),它接受一个整数 n 作为参数。
    在函数中,初始化变量 a 和 b,分别赋值为 1(表示斐波那契数列的前两项)
  • 使用 for 循环从 0 到 n-1 进行迭代,每次迭代进行以下操作:
    使用 a 和 b 相加的结果更新 a 的值;使用原本 a 的值更新 b 的值。
  • 循环结束后,函数返回变量 a,即斐波那契数列的第 n 项的值。

解析完函数部分后,代码的主要逻辑如下:

  • 声明一个空列表 value,用于存储输入的值。
  • 使用 input() 函数读取一个整数 n,表示需要计算斐波那契数列的项数。
  • 使用 for 循环从 0 到 n-1 进行迭代,每次迭代进行以下操作:
    使用 input() 函数读取一个整数,并使用 int() 函数将其转换为整型。
    将转换后的整型值添加到列表 value 中。
  • 使用另一个 for 循环从 0 到 n-1 进行迭代,每次迭代进行以下操作:
    将 value 列表中第 i 个元素赋值给变量 y。调用函数 count(y) 计算斐波那契数列的第 y 项的值,并将结果赋值给变量 a。使用 print() 函数输出变量 a。

这样,代码将逐个读取输入的值,计算斐波那契数列的对应项,并将结果逐个输出。

-法2(递归函数不变,对下面基础代码进行了优化)

def count(n):
    a,b=1,1
    for i in range(n-1):
        a,b=b,a+b
    return a
for _ in range(int(input())):
    y = int(input().strip())
    a = count(y)
    print(a)
#但是有个问题就是输出有卡顿

代码解析

相比于法1就是省略了开拓一个列表的工作

解题思路

首先是针对斐波那契数列的解读
在这里插入图片描述
然后再一个就是对输入的处理了,用了strip()函数,

奇技淫巧

  1. Q:怎么根据斐波那契数列的计算规则编写函数?
    –>
  2. Q:输入的格式很奇怪,怎么处理?

补充

当然对于这类问题,网上还有一些其他更优的解法,动态规划什么的,大家可以自行去探索!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值