演算法謎題 57 斐波那契的兔子問題

2021-06-28 09:30:38 字數 824 閱讀 9089

難度:簡單

問題描述:一對兔子被圈養,假定最開始時這對兔子(一公一母)是剛剛出生的,而且所有的兔子在生命的第乙個月裡不具備繁殖能力,在第二個月的月底會產生出一對新的公兔和母兔,並且至此以後每月如此,問經過一年以後兔子的數目還有多少對?

我的想法:這個問題很簡單,就是斐波那契數列,只不過讓資料在程式中的表現形式多種多樣,寫法也因人而異。。。我們都知道遞迴方式寫斐波那契數列是錯誤行為,因為大量的重複計算會讓人很難釋懷。我在程式中設定了兩個變數,old_rabbit和new_rabbit,分別表示成年的兔子對數和新生的兔子對數。然後每到第i個月的月底,先讓小兔子長成大兔子,統計他們的對數:grow_rabbit=new_rabbit;,再讓老兔子生出小兔子:new_rabbit=old_rabbit;最後長大的兔子們也進入了生兔子的大軍中:old_rabbit+=grow_rabbit;這樣,迴圈12次代表一年,輸出結果即可。

程式:

#include "stdafx.h"

#include "iostream"

using namespace std;

int main(int argc, char* argv)

{ int old_rabbit=0;

int new_rabbit=1;

for(int i=0;i<12;i++) //每一次迴圈相當於每個月月底,第一次就是1月

{ int grow_rabbit=new_rabbit;

new_rabbit=old_rabbit; //老兔子生出小兔子

old_rabbit+=grow_rabbit;

cout<<"第"<

斐波那契的兔子

有一對兔子,從出生後第3個月起,每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子。假如兔子都不死,求第n個月兔子對數 關於斐波那契數列的兔子繁殖問題可以如下理解 實際月份 1 2 3 4 5 6 7 8 幼仔對數 1 0 1 1 2 3 5 8 成兔對數 0 1 1 2 3 5 8 13 ...

斐波那契兔子問題詳解

fibonacci hibbit question 問題 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?分析 如下圖,第一列表示第1 7月 正文部分的數字表示兔子的編號 為表述方便,下文用 兔子 代表 兔子對 第1...

兔子生兔子問題 斐波那契數列

題目 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子。假如兔子都不死,要求輸出一年內兔子的數量是多少。1 1 2 3 5 8 如下 兔子問題 斐波那契 public class homework05 static intfab int month stati...