题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....,即下个月是上两个月之和(从第三个月开始)。
代码实现:
/*古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)*/
#include <stdio.h>
void main() {
//声明f1为第一个月的兔子数量,f2为第二个月的兔子数量
int f1 = 2, f2 = 2, i;
//i<=20因为每次输出两个月的兔子数量,因此只需循环20次即可
for (i = 1; i <= 20; i++)
{
//连续输出两个月的兔子数量
printf("%12d%12d", f1, f2);
if (i % 2 == 0) printf("\n");
f1 = f1 + f2;//使用f1保存从第三个月开始奇数月的兔子数量
f2 = f1 + f2;//使用f2保存从第四个月开始偶数月的兔子数量
}
}
实现结果: