蓝桥杯备战每日一练-----Python

基础

刷题2月3日

  • 一、斐波那契数列
  • 题目描述
    • 代码
  • 二、cryin的斐波那契数列
    • 代码
  • 总结


一、斐波那契数列

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

题目描述

现在要求输入一个整数n,请你输出斐波那契数列得第n项(从n开始,第n项为0) 即 0 1 1 2 3 5 …

利用公式求解
由公式:当n=1时f(n)=1
当n>1时f(n)=f(n-1)+f(n-2)

代码

 class Solution:
    def Fibonacci(self,n):
        if n==0:
            return 0
        if n==1:
            return 1
        if n>1:
            num=self.Fibonacci(n-1)+self.Fibonacci(n-2)
            return num
        #注意为负数时,则返回为空
        return None

但是会超时,由于递归耗时长
如果按照递归来写的话,时间复杂度就是随着n的变化增长率为2**n

更改:

class Solution:
    def Fibonacci(self,n):
        if n==0:
            return 0
        if n==1:
            return 1
        a=1
        b=0
        fn=0
        for i in range(0,n-1):
            #保留上次计算的结果
            fn=a+b
            b=a
            a=fn
        return fn

二、cryin的斐波那契数列

lcryin最近迷上了斐波那契数列,斐波那契数列的定义如下
F[1]=1;
F[2]=1;
F[n]=F[n-1]+F[n-2](n≥3);
lcryin想知道数列中某项的奇偶性,他觉得这个问题太简单了,于是把问题抛给了聪明的你。

输出:
斐波那契数列的第n项是奇数还是偶数,奇数输出even,偶数输出odd,对于每个测试实例,输出一行。

可以寻找规律:
n项数:1 2 3 4 5 6 7 8 9 …
对应值:1 1 2 3 5 8 13 21 34 …
可以看出当n项为3的倍数时对应的值为偶数

代码

代码如下(示例):

try:
    while True:
        n=int(input())
        if n%3==0:
            print('odd')
        else:
            print('even')
except EOFError:
    pass

总结

每个题目注意要懂得变通,寻找规律。

你可能感兴趣的:(蓝桥杯刷题,蓝桥杯,python)