• Python学习笔记_斐波那契数列


    """
    1、生成100项斐波那契数列
    2、求第n项斐波那契数列的值是多少
    3、给定终止值,生成此前斐波那契数列
    """
    
    # 求第n项斐波那契数列的值是多少
    def Fibonacci(n):
    
        if n == 1:  # 如果n=1,返回0
            return 0
        elif n == 2:  # 如果n=2,返回1
            return 1
        else:
            return Fibonacci(n-1) + Fibonacci(n-2)  # 通项公式 F(N) = F(N-1) + F(N-2)
    
    # 生成前n项斐波那契数列
    def Fibonaccii(n):
        seq = [0,1]  # 初始化列表
        if n == 1:  # n=1,返回[0] 
            return [0]
        elif n == 2:  # n=2,返回[0,1]
            return [0,1]
        else:
            for i in range(n-2): # n>2,循环添加数列到初始列表中
                seq.append(seq[i]+seq[i+1])
            return seq  
    
    # 给定终止值,生成此前斐波那契数列
    def Fibonacciii(n):
    
        seq = [0,1]  # 初始化列表
        i = 0  # 初始i
    
        if n == 0:  # 如果n=0,返回列表[0]
            return [0]
        else:
            if n <= 3:  # 如果0<n<3
                for i in range(n):  # 循环往初始列表中添加斐波那契数列
                    seq.append(seq[i]+seq[i+1])
                return seq
            else:  # 如果n > 3
                while True:  # 理论上当n 不确定时,需要添加的项数也是不确定的,故死循环
                    if seq[-1] <= n:  # 一直添加,如果添加的最后一项不大于给定值
                        seq.append(seq[i]+seq[i+1])
                        i += 1  # 每次循环i 递增
                        continue  # 继续循环,不执行以下代码
                    break  # 当最后一项大于给定值时,跳出死循环
                return seq[0:-1]  # 最后返回去掉最后一个数值的斐波那契数列
    
    # 求第n项斐波那契数列的值是多少(快速版)
    def Fibonaccii(n):
        seq = [0,1]  # 初始列表怕[0,1]
        if n == 1:  # 如果n=1,返回[0]
            return [0]
        elif n == 2:  # 如果n=2,返回[0,1]
            return [0,1]
        else:
            for i in range(n-2):  # 循环往列表中添加数列,初始已有两项故添加项数为n-2
                seq.append(seq[i]+seq[i+1])  # 添加的数列值等于前两项的和
            return seq[-1]  # 取最后一项的值
    
    # 求第n项斐波那契数列的值是多少(终极版)
    def Fibonaccii(n):
        a,b = 1,1
        if n == 1 or n == 2:
            return 1
        for i in range(n-2):
            s = a + b
            a,b = b,s
        return s
    
    
    # 老男孩版本
    def Fibonacciiii(arg1,arg2,stop):
        if arg1 == 0:
            print(arg1)
            print(arg2)
        arg3 = arg1 + arg2
        print(arg3)
        if arg3 < stop:
            Fibonacciiii(arg2,arg3,stop)
    
    Fibonacciiii(0,1,1000)
  • 相关阅读:
    python 安装相关命令-汇总
    python3 安装 past 包
    IntelliJ IDEA、JetBrains PyCharm 注册码-收藏
    C# 播放器, 收藏
    C# 通过二进制,将多个文件合并为一个。
    AForge.NET是一个专门为开发者和研究者基于C#框架设计的视频录像
    eclipse-连接TFS错误 <the server to respond with a valid http response>解决方法
    CodeReview是开发中的重要一个环节,整理了一些关于jupiter for java
    通过html字符串连接组合并调用javascript函数
    System.load(PWConnector.dll)加载异常 Can't find dependent libraries
  • 原文地址:https://www.cnblogs.com/waterr/p/14022368.html
Copyright © 2020-2023  润新知