使用遞歸方法和類數組兩種方法計算斐波那契數列

?菲波納契數列又稱"菲波納契神奇數列",是由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.pswp.cn/news/718088.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718088.shtml
英文地址,請注明出處:http://en.pswp.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對象 十六.獲取…