C++實現Fibonacci數列

C++實現Fibonacci數列

C++實現Fibonacci數列前20個數。這個數列有如下特點:第1,2兩個數都爲1,1從第3個數開始,該數前面兩個數之和。即爲:
F1=1(n=1)
F2=1(n=2)
F n F_n Fn= F n − 1 F_{n-1} Fn1+ F n − 2 F_{n-2} Fn2(n≥3)


解題思路:

這個是一個很有趣的古典數學問題:有一對兔子,從出生後第三個月起每個月都生一對小兔子。小兔子長到第3個月後又生一對兔子。假設所有兔子都不死,問每個月的兔子總數爲多少?

第幾個月 小兔子對數 中兔子對數 老兔子對數 兔子總數
1 1 0 0 1
2 0 1 0 1
3 1 0 1 2
4 1 1 1 3
5 2 1 2 5
6 3 2 3 8
7 5 3 5 13

不滿1個月的爲小兔子,滿1個月不滿2個月的爲中兔子,滿3個月以上的爲老兔子。可以看到每個月兔子的總數依次爲1,1,2,3,5,8,13…這就是Fibonacci數列。

編寫程序:

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
   
   
	long int f1=1, f2=1;
	int i;
	for ( i = 1; i <=20; i++)//每次輸出兩個數,故循環40÷2=20次
	{
   
   
		cout << setw(12) << f1 << setw(12) << f2;//設備輸出的字段寬帶爲12
		if (i % 2 == 0)cout << endl;
		f1 = f1 + f2;//等號左邊的f1代表第3個數,是第1個第2個數之和
		f2 = f1 + f2;//等號左邊的f2代表第4個數,是第2個第3個數之和
	}
	system("pause");
	return 0;
}

運行結果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章