赞
踩
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} Fn−1+ F n − 2 F_{n-2} Fn−2(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; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。