使用递归方法和类数组两种方法计算斐波那契数列

 菲波纳契数列又称"菲波纳契神奇数列",是由13世纪的意大利数学家菲波纳契提出的,当时是和兔子的繁殖问题有关的,它是一个很重要的数学模型。这个问题是:有小兔一对,若第二个月它们成年,第三个月生下小兔一对,以后每月生产一对小兔,而所生小兔亦在第二个月成年,第三个月生产另一对小兔,以后亦每月生产小兔一对,假定每产一对小兔必为一雌一雄,且均无死亡,试问一年后共有小兔几对?

案例分析
以1对新出生小兔子为例。

第1个月:小兔子1没有繁殖能力,所以还是1对。

第2个月:小兔子1进入成熟期,还是1对。

第3个月:小兔子1生了1对小兔子2,本月共有2对兔子。

第4个月:小兔子1又生了1对小兔子3,本月共有3对兔子。

第5个月:小兔子1又生了1对小兔子4,而在第3个月出生的小兔子2也生了1对小兔子5,本月共有5对兔子。

第6个月:小兔子1,2,3各生1对小兔子,本月共有8对兔子。

所以兔子序列为 1 1 2 3 5 8....

即后一项是前面两项之和,下面使用递归方法和类数组方法计算斐波那契数列,

#include <iostream>
using namespace std;
int f(int x){if(x==1||x==2)return 1;return f(x-1)+f(x-2);
}
int main(){
//使用递归方法输出结果 
cout<<f(46)<<endl;
//输出前一项与后一项的比值,这个比值非常接近黄金分割数0.618
cout<<f(45)/f(46)<<endl;//使用类数组方法输出结果,这个方法代码量比递归法大,但是运行速度更快 
int a=1,b=1,c;
for(int i=3;i<=46;i++){c=a+b;a=b;b=c;	
}
cout<<c;return 0;
}

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

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

相关文章

3333666777

☞ 通用计算机启动过程 1️⃣一个基础固件&#xff1a;BIOS 一个基础固件&#xff1a;BIOS→基本IO系统&#xff0c;它提供以下功能&#xff1a; 上电后自检功能 Power-On Self-Test&#xff0c;即POST&#xff1a;上电后&#xff0c;识别硬件配置并对其进行自检&#xff0c…

阿里云仓库

仓库服务 (aliyun.com) maven中央仓库&#xff1a; Central Repository: (maven.org)

Windows10 安装Neo4j流程

1、下载并安装ava运行环境 官网链接&#xff08;需要注册Oracle账号&#xff09;&#xff1a;https://www.oracle.com/java/technologies/downloads/ 根据自己Neo4j版本确认需要的JDK版本 百度网盘链接&#xff1a; 链接&#xff1a;链接&#xff1a;https://pan.baidu.com/s/…

静态网页和动态网页的异同

静态网页和动态网页是两种不同类型的网页。它们之间的主要异同点如下&#xff1a; 1. 静态网页&#xff1a; - 静态网页是指在服务器上预先准备好的网页&#xff0c;内容固定不变。 - 静态网页通常由HTML、CSS和JavaScript等静态文件组成。 - 用户访问静态网页时&#xff0c…

Sodinokibi勒索病毒最新变种,解密工具更新到2.0版本

Sodinokibi勒索病毒 Sodinokibi勒索病毒又称REvil&#xff0c;自从2019年6月1日&#xff0c;GandCrab勒索病毒运营团伙宣布停止运营之后&#xff0c;Sodinokibi勒索病毒马上接管了GandCrab的大部分传播渠道&#xff0c;同时它也被称为是GandCrab勒索病毒的“接班人”&#xff…

VMware 虚拟机安装windows 10操作系统

先提前准备好镜像文件 1.创建新的虚拟机 2.选择自定义&#xff0c;然后下一步 v Windows 建议选择2G以上&#xff0c;下一步 选择网络地址转换&#xff08;NAT&#xff09;&#xff0c;下一步 这里可按自己的需求来分区&#xff0c;也可以安装好后再分区 选择立即重启&#xff…

【剑指offer】C++ 翻转字符串里面的单词

目录 题目: 思路: 代码出现 结果 题目: 给定一个字符串,逐个翻转字符串中的每个单词。 示例 1: 输入: "the sky is blue" 输出: "blue is sky the" 示例 2: 输入: " hello world! " 输出: "world! hello" 解释: 输入字符…

L1-032 Left-pad(PTA)

文章目录 L1-032 Left-pad题目描述代码 L1-032 Left-pad 题目描述 根据新浪微博上的消息&#xff0c;有一位开发者不满NPM&#xff08;Node Package Manager&#xff09;的做法&#xff0c;收回了自己的开源代码&#xff0c;其中包括一个叫left-pad的模块&#xff0c;就是这个…

使用 Object.defineProperty() 来进行数据劫持有什么缺点?

使用 Object.defineProperty() 来进行数据劫持有什么缺点&#xff1f; &#xff08;1&#xff09;在对一些属性进行操作时&#xff0c;使用这种方法无法拦截&#xff0c;比如通过下标方式修改数组数据或者给对象新增属性&#xff0c;这都不能触发组件的重新渲染&#xff0c;因为…

Vue组件置底方法,ElementPlus布局

问题描述 在开发网页时使用了elementplus的el-container组件 组件里分成了main和footer两块&#xff0c;但是想要将两个按钮置底在容器底部遇到了困难 如下图所示&#xff0c;在网页开发者工具可见两个按钮与左侧的图片没有底部对齐 此时我的代码是这样 <el-footer>&…

STM32自学☞串口发送+接收

一、相关函数说明&#xff1a; USART_ClockInit()和USART_ClockStructInit(); 用来配置同步时钟输出 USART_DMACmd(); 开启USART到DMA的触发通道 USART_SendData(); 发送数据 USART_ReceiveData(); 接收数据 二、程序代码 serial.c文件 #include "stm32f10x.h" #i…

文件底层的深入理解之文件输入输出重定向

目录 一、文件fd的分配规则 二、对输出重定向现象的理解 三、输出输入重定向的简单实现 1、输出重定向 2、输入重定向 一、文件fd的分配规则 最小的没有被使用的数组下标&#xff0c;会被分配给最新打开的文件。 二、对输出重定向现象的理解 正如上面这段代码所示&#xff0…

C语言实现日本某地发生了一件谋杀案

题目 猜凶手 题目内容&#xff1a; 日本某地发生了一件谋杀案&#xff0c;警察通过排查确定杀人凶手必为4个嫌疑犯的一个。 以下为4个嫌疑犯的供词: A说&#xff1a;不是我。 B说&#xff1a;是C。 C说&#xff1a;是D。 D说&#xff1a;C在胡说 已知3个人说了真话&…

从零开始学习Netty - 学习笔记 -Netty入门【半包,黏包】

Netty进阶 1.黏包半包 1.1.黏包 服务端代码 public class HelloWorldServer {private static final Logger logger LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());public static void main(String[] args) {NioEventLoopGroup bossGroup new NioEventL…

Ubuntu上Jenkins自动化部署Gitee上VUE项目

文章目录 1.安装NodeJS插件2.配置全局工具配置-NodeJS环境变量3.新建自由风格的软件项目任务4.配置General配置丢弃旧的构建配置参数化构建过程 5.配置源码管理6.构建触发器7.设置构建环境8.配置构建步骤9.配置构建后操作10测试构建 前文链接&#xff1a; Ubuntu上Jenkins自动…

java常用应用程序编程接口(API)——Instant,DateTimeFormatter,Period,Duration概述

前言&#xff1a; 整理下学习心得。打好基础&#xff0c;daydayup&#xff01; Instant Instant是时间线上的某个时刻/时间戳&#xff0c;通过获取Instant的对象可以拿到此刻的时间&#xff0c;该时间由两部分组成&#xff1a;1&#xff0c;从1970年1月1日00:00:00开始走到此刻…

前端开发 VSCode 插件推荐

1、Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code VS Code 的中文&#xff08;简体&#xff09;语言包&#xff0c;此中文&#xff08;简体&#xff09;语言包为 VS Code 提供本地化界面。 下载地址&#xff1a;Chinese (Simplified) (简体中文) La…

D*算法超详解 (D星算法 / Dynamic A*算法/ Dstar算法)(死循环解决--跟其他资料不一样奥)

所需先验知识&#xff08;没有先验知识可能会有大碍&#xff0c;了解的话会对D*的理解有帮助&#xff09;&#xff1a;A*算法/ Dijkstra算法 何为D*算法 Dijkstra算法是无启发的寻找图中两节点的最短连接路径的算法&#xff0c;A*算法则是在Dijkstra算法的基础上加入了启发函数…

[JavaWeb玩耍日记]HTML+CSS+JS快速使用

目录 一.标签 二.指定css 三.css选择器 四.超链接 五.视频与排版 六.布局测试 七.布局居中 八.表格 九.表单 十.表单项 十一.JS引入与输出 十二.JS变量&#xff0c;循环&#xff0c;函数 十三.Array与字符串方法 十四.自定义对象与JSON 十五.BOM对象 十六.获取…