首页 > 编程语言 >【python3.8】斐波拉契数列实现

【python3.8】斐波拉契数列实现

时间:2022-08-28 23:38:51浏览次数:52  
标签:return 数列 seq res list 波拉 fib using python3.8

import  time

def memoize(f):
    memo = {}
    def helper(x):
        if x not in memo:
            memo[x] = f(x)
        return memo[x]
    return helper

@memoize
def fib(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fib(n-1) + fib(n-2)


def fib_seq(n):
    res = []
    if n > 0:
        res.extend(fib_seq(n-1))
    res.append(fib(n))
    return res

# 耗时:7.870000000000099e-05
start_using_list = time.perf_counter()
fib_seq(30)
end_using_list = time.perf_counter()
print(f'耗时:{end_using_list-start_using_list}')


# def fib(n):
#     if n == 0:
#         return 0
#     elif n == 1:
#         return 1
#     else:
#         return fib(n-1) + fib(n-2)
#
# def fib_seq(n):
#     res = []
#     if n > 0:
#         res.extend(fib_seq(n-1))
#     res.append(fib(n))
#     return res

# # 耗时:1.2619506
# start_using_list = time.perf_counter()
# fib_seq(30)
# end_using_list = time.perf_counter()
# print(f'耗时:{end_using_list-start_using_list}')

 

标签:return,数列,seq,res,list,波拉,fib,using,python3.8
From: https://www.cnblogs.com/apple2016/p/16634425.html

相关文章

  • leetcode 斐波那契数列 javascript实现
    写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项(即F(N))。斐波那契数列的定义如下:F(0)=0,  F(1) =1F(N)=F(N-1)+F(N-2),其中N>1.斐波那契数列由0......
  • P7961 [NOIP2021] 数列
    题目描述给定整数\(n,m,k\),和一个长度为\(m+1\)的正整数数组\(v_0,v_1,\ldots,v_m\)。对于一个长度为\(n\),下标从\(1\)开始且每个元素均不超过\(m\)的......
  • 划分数列(ybtoj递推练习题1)
    题目描述给定一个长度为n的数列 ,要求划分最少的段数,使得每一段要么单调不降,要么单调不升。输入格式第一行一个整数 。接下来n个数表示数列 。......
  • 「学习笔记」不动点法求数列通项
    前言不动点法求数列通项是怎么回事呢?不动点法相信大家都很熟悉,但是不动点法求数列通项是怎么回事呢,下面就让小编带大家一起了解吧不动点法求数列通项,其实就是数列通项可......
  • 1084 外观数列——20分
    外观数列是指具有以下特点的整数序列:d,d1,d111,d113,d11231,d112213111,...它从不等于1的数字d开始,序列的第n+1项是对第n项的描述。比如第2项表示第1......
  • 斐波那契数列前1000项
    {1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,57......
  • ubuntu18.04 apt 安装python3.8
    Runthefollowingcommandsasrootor userwithsudoaccess toupdatethepackageslistandinstalltheprerequisites:sudoaptupdatesudoaptinstallsoft......
  • 剑指 Offer 10- I. 斐波那契数列
    一、题目写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项(即F(N))。斐波那契数列的定义如下:F(0)=0,  F(1) =1F(N)=F(N-1)+F(N-2),其中N>1.斐......
  • 使用JS 递归函数 输出 斐波那契数列 (return 返回值使用时的注意点 )
      functionaee(i){  if(i==0){    return0;  }  if(i==1){    return1;  }  if(i>=2){ ***//......
  • 【笔记】斐波那契数列
    定义\[\largeF_n=\begin{cases}0&n=0\\1&n=1\\F_{n-2}+F_{n-1}&\operatorname{otherwise}.\end{cases}\]通项公式\[\largeF_n=\frac{\left(\frac{1+\sqrt5......