这是一个古典数学问题:有一对兔子,从出生后第三个月起每个月都生一对兔子。小兔子长到第三个月后每个月又生一对兔子。假设所有兔子都不死,问每个月的兔子总数为多少?
我们一起来看一下兔子繁殖的规律。下图是我整理的一个表。
月数 | 小兔子对数
| 中兔子对数 | 老兔子对数 | 兔子总数 |
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 |
... | ... | ... | ... | ... |
这里我设不满一个月为小兔子,满一个月不满两个月的为中兔子,满三个月及以上为老兔子。
根据分析,我们只需设置一个循环即可。
源代码如下,
#define _CRT_SECUSE_NO_WARINGS 1
#include<string.h>
#include<stdio.h>
#include<iostream>
int main()
{
int f1 = 1, f2 = 1, f3;
int i;
printf("%12d\n%12d\n", f1, f2);
for (i = 1; i <= 38; i++)
{
f3 = f1 + f2;
printf("%12d\n", f3);
f1 = f2;
f2 = f3;
}
system("pause");
return 0;
}
运行结果如下: