用递归和非递归实现斐波那契数列

简介: 用递归和非递归实现斐波那契数列

题目描述

斐波那契数列的排列是:1,1,2,3,5,8,13,21,34,55,89,144。在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)。分别用递归和非递归的方式,计算第n个斐波那契数。


实现代码

1、递归方法

def Fib(n):
    if n==1 or n==2:
        return 1
    else:
        return Fib(n-1)+Fib(n-2)
def main():
    a=eval(input("请输入n:"))
    print("第{}个斐波那契数是{}".format(a,Fib(a)))
main()

2、非递归方法


def Fbnq(n):
    s=[0,1]
    if n==1:
        return s[n]
    for n in range(2,n+1):
        s.append(s[n-1]+s[n-2])
    return s[n]
def main():
    num=eval(input("要求第几个斐波拉契数:"))
    print("第{}个斐波拉契数为{}".format(num,Fbnq(num)))
main()

运行演示

image.png

目录
相关文章
|
网络安全 开发工具 文件存储
在群晖NAS上快速搭建属于自己的Git Server
在群晖NAS上快速搭建属于自己的Git Server
2993 0
|
算法 Java 数据处理
Java中MD5加密算法的实现
Java中MD5加密算法的实现
|
机器学习/深度学习 算法 PyTorch
使用Pytorch中从头实现去噪扩散概率模型(DDPM)
在本文中,我们将构建基础的无条件扩散模型,即去噪扩散概率模型(DDPM)。从探究算法的直观工作原理开始,然后在PyTorch中从头构建它。本文主要关注算法背后的思想和具体实现细节。
9181 3
|
物联网 Python
《HaaS物联网云端一体低代码开发课程(上)》电子版
由浅入深的全方位介绍物联网基础知识和网络层基础知识,直击当前物联网领域学习者所遇到的痛点问题,并基于HaaSEDUK1开发板着重介绍如何用Python轻应用开发新模式结合物联网云平台及IoTStudio对云端一体化的开发模式进行讲解
147 13
《HaaS物联网云端一体低代码开发课程(上)》电子版
|
机器学习/深度学习 存储 算法
YOLOv5的Tricks | 【Trick7】指数移动平均(Exponential Moving Average,EMA)
这篇博客主要用于整理网上对EMA(指数移动平均)的介绍,在yolov5代码中也使用了这个技巧,现对其进行归纳。
2331 1
YOLOv5的Tricks | 【Trick7】指数移动平均(Exponential Moving Average,EMA)
|
机器学习/深度学习 自然语言处理 算法
Word2Vec原理以及实战详解
Word2Vec原理以及实战详解
【分治法】整数因子分解问题
【分治法】整数因子分解问题
484 0
【分治法】整数因子分解问题
|
机器学习/深度学习
【DL】神经网络中卷积层输出大小尺寸计算
神经网络中卷积层输出大小尺寸计算
|
算法 Android开发 计算机视觉
优酷移动端弹幕穿人架构设计与工程实战总结
优酷移动端弹幕穿人架构设计与工程实战总结
503 0
优酷移动端弹幕穿人架构设计与工程实战总结
|
分布式计算 Hadoop 开发者
MapTask 工作机制.| 学习笔记
快速学习 MapTask 工作机制.
277 0
MapTask  工作机制.| 学习笔记
下一篇
开通oss服务