求斐波那契数(递归,非递归)

news2024/11/28 8:45:28

目录

一、斐波那契数?

二、递归实现求第n个斐波那契数

 2.1代码与运行结果

 2.1.1图解递归过程

三、非递归求法

3.1为什么不用递归求法 

 3.2非递归


一、斐波那契数?

它指的是这样的数列:1,1,2,3,5,8,13,21,34,55.......

第一个和第二个数为二,第三个位开始它的值为前两位之和。

二、递归实现求第n个斐波那契数

知道什么是斐波那契数

我们可以得出:

n>2:

Fib(n)=Fib(n-1)+Fib(n-2)

n<=2

Fib(1)=Fib(2)=1

 2.1代码与运行结果

 2.1.1图解递归过程

求第4位斐波那契数(红色是调用函数,蓝色是返回函数)

递归需要满足两个条件:

1.有可以结束递归的条件(图中(k<=2)就是)

2.每次递归都会接近这个条件

三、非递归求法

3.1为什么不用递归求法 

但是递归似乎并不适用于求斐波那契数。

我们可以看到,它一直再求一些相同的数的值。

 这个是求第35个斐波那契数时,所求的第3个斐波那契数的次数。

 

并且在求一些,值比较大的情况,并不会马上输出结果。

程序没有崩,计算机在拼命的计算。

 

 3.2非递归

运算速度会比递归快 

 

 

 


Nothing in the world is difficult for one who sets his mind to it. - MAO zedong.

世上无难事,只怕有心人。——毛泽东

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/26837.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【附源码】计算机毕业设计JAVA智能社区管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven Vue 等等组成&#xff0c;B/…

安泰测试-信号发生器常见的故障与解决方法

信号发生器是一种能提供各种频率、波形和输出电平电信号的设备。在测量各种电信系统或电信设备的振幅特性、频率特性、传输特性及其它电参数时&#xff0c;以及测量元器件的特性与参数时&#xff0c;用作测试的信号源或激励源&#xff0c;经常和示波器是老搭档&#xff0c;也是…

三菱FX3U——ST编程流水灯

当D0的默认值为0时&#xff0c;赋值1&#xff1b; TON_1每隔1秒触发输出M1&#xff0c;M1触发D0左移一位&#xff0c;D0的值相当于每1秒乘以2&#xff1b; 在通过M1复位定时TON_1; 每一秒使一个输出得电&#xff0c;当D0的值不在选项内的值&#xff0c;将D0赋值为0&#xff1…

无序和混乱终结者,极狐GitLab Workflow 到底有什么魔力?

效率和质量是软件产品追求的两个核心关键点&#xff0c;软件产品研发是一个覆盖多阶段、涉及多团队的过程&#xff0c;业界也已经总结出了一些很好的实践&#xff0c;在保证研发效率的同时还能保证代码质量。比如代码提交规范、Code Review、代码准入、CI/CD。 但是由于缺乏行之…

冒死开源。阿里新产Spring Boot+Spring Cloud微服务开发实战笔记

昨天跟粉丝聊到了一个问题&#xff0c;他说现在很多招聘要求需要有微服务经验&#xff0c;本人目前生产上没有微服务经验&#xff0c;该如何弥补&#xff1f; 小编在这儿就分享一份学习资料&#xff0c;这份资料既是初学者学习微服务开发的技术宝典&#xff0c;又是中级开发人…

不同版本的谷歌浏览器跨域怎么设置?

由于项目前端使用8001端口&#xff0c;后端使用的8080端口&#xff0c;因此前端调用后端接口时需要跨域&#xff0c;在浏览器中需要设置跨域&#xff0c;否则会由于跨域安全性导致请求失败。 一. 浏览器版本大于49 1.在chrome中&#xff0c;需要新建一个chrome浏览器的快捷方…

HiveSQL分位数函数percentile()使用详解+实例代码

前言 作为数据分析师每个SQL数据库的函数以及使用技能操作都得点满&#xff0c;尤其是关于统计函数的使用方法。关于统计出数据的中位数&#xff0c;众数和分位数的方法必须掌握几种&#xff0c;一般在实际业务上大部分都是以写SQL查询为主&#xff0c;因为如果想用Python的Pa…

植物大战僵尸变态辅助开发系列教程(E语言实现和VC6实现)(下)

植物大战僵尸变态辅助开发系列教程&#xff08;E语言实现和VC6实现&#xff09;&#xff08;下&#xff09;36、全屏秒杀37、秒杀实现37、PVZ聚怪38、种植CALL的查找与调用39、OpenProcess错误40、错误&#xff1a;constchar[19]”转换为“LPCWSTR”附录&#xff1a;36、全屏秒…

opencv的相机校准和3D建模的理论知识

一、相机标定的四个坐标系 1、世界坐标系&#xff08;Xw&#xff0c;Yw&#xff0c;Zw)&#xff1a;也称真实或现实世界坐标系&#xff0c;或全局坐标系。它是客观世界的绝对坐标&#xff0c;由用户任意定义的三维空间坐标系。一般的3&#xff24;场景都用这个坐标系来表示。 …

SSM框架使用多数据源(druid连接池)

最近有个数据归集的需求用到了多数据源&#xff0c;在业务库保存后同时向归集库插入或数据。之前好像还没做过这块的东西&#xff0c;简单记录下防止下次又忘记了~ 踩过的几个坑都是某些知识点不熟悉导致的&#xff0c;而且都是框架配置相关的.. 先上代码&#xff0c;再扯淡 …

PyQt5 拖拽与剪贴板

拖拽与剪切板拖拽剪贴板拖拽 基于MIME类型的拖拽数据传输时基于QDrag类的QMimeData对象管理的数据与其对应的MIME类型相关联。 MimeData类函数允许检测和使用方法的MIME类型 判断函数设置函数获取函数MIME类型hasText()text()setText()text/plainhasHtml()html()setHtml()tex…

【Java八股文总结】之SpringBoot

文章目录SpringBoot1、Spring Boot的优点&#xff1f;2、Spring Boot自动配置原理3、如何定义一个SpringBoot Starter&#xff1f;4、SpringBoot启动原理&#xff1f;5、SpringBoot的常用注解Spring Cache1、Spring Cache介绍2、Spring Cache注解Sharding-JDBCSpringBoot 1、S…

关于vector的迭代器失效

目录 关于迭代器失效的判定 1 迭代器指向的位置是野指针&#xff08;全部迭代器失效&#xff09; 原因&#xff1a; 解决 2 erase或者insert之后迭代器被更改了&#xff08;部分迭代器失效&#xff09; 原因 迭代器失效的场景&#xff1a; 改进之后 部分迭代器失效之越…

十年前的AlexNet,今天的NeurIPS 2022时间检验奖

目录&#xff1a;十年前的AlexNet&#xff0c;今天的NeurIPS 2022时间检验奖一、前言二、时间检验奖一、前言 作为当前全球最负盛名的 AI 学术会议之一&#xff0c;NeurIPS 是每年学界的重要事件&#xff0c;通常在每年 12 月举办。大会讨论的内容包含深度学习、计算机视觉、大…

三款“非主流”日志查询分析产品初探

前言 近些年在开源领域&#xff0c;用于构建日志系统的软件有两类典型&#xff1a; Elasticsearch&#xff1a;基于 Lucene 构建倒排索引提供搜索功能&#xff0c;DocValue 存储支持了其统计分析能力。Clickhouse&#xff1a;列式存储是其优秀 OLAP 性能的保障。 这里把上述系…

Windows安装MySQL

目录 1、确认本地是否安装了mysql 2、下载安装包 3、安装mysql 4、修改mysql密码 5、配置环境变量 1、确认本地是否安装了mysql &#xff08;1&#xff09;按【winr】快捷键打开运行&#xff0c;输入services.msc&#xff0c;点击【确定】&#xff1b; &#xff08;2&…

大数据开发和软件开发哪个前景好?

大数据开发和软件开发哪个前景好&#xff1f;大数据开发学习有难度&#xff0c;零基础入门要先学习Java语言打基础&#xff0c;然后进入大数据技术体系的学习&#xff0c;学习Hadoop、Spark、Storm等知识。软件开发工程师根据不同的学科从事的岗位也千差万别。 先说说大数据开…

关于激光雷达传感器分类及简介

关于激光雷达传感器&#xff08;根据特性进行分类介绍&#xff09;0一些激光雷达的厂商总结1 基本介绍2 基本分类及组成2.1 激光雷达的相关分类2.1.1 机械式激光雷达&#xff1a;2.1.2 混合固态激光雷达&#xff1a;2.1.3 固态激光雷达&#xff1a;OPA和Flash固态激光雷达2.2 机…

Linux shell 脚本学习

目录 1.shell编程的基本格式 开头 注释 加可执行权限 执行脚本的三种方法 2.变量 定义变量和清除变量 从键盘获取值(read) 读取多个值 只读变量(readonly) 位置变量 变量运算 3.条件测试 文件测试 字符串测试 数值测试 逻辑操作符 4. if条件语句 if条件语句语法 单…

SPARKSQL3.0-源码剖析全流程导读

SPARKSQL-源码剖析全流程导读 一、处理流程 spark从一条sql语句一步一步转换成物理执行结果&#xff0c;这中间需要经历几个阶段&#xff0c;如下图&#xff1a; 二、各阶段概述 1、Unresolved-未解析阶段 此阶段主要做了两件事&#xff1a; 1、将sql字符串通过antrl4转化…