问题描述:
有一对兔子,从出生后的第 3 个月起每个月都生一对兔子。
小兔子长到第 3 个月后每个月又生一对兔子,假设所有的兔子都不死,问 30 个月内每个月的兔子总数为多少?
问题分析:
不满 1 个月的兔子为小兔子,满 1 个月不满 2 个月的为中兔子,满3个月以上的为老兔子。
可以看出,每个月的兔子总数依次为 1,1,2,3,5,8,13…这就是 Fibonacci数列。
总结数列规律:即从前两个月的兔子数可以推出第 3 个月的兔子数。
代码:
#include <stdio.h>
int main()
{
long fib1 = 1;
long fib2 = 1;
long fib = 0;
int i = 0;
printf("%12d%12d", fib1, fib2);
for (i = 3; i <= 30; i++)
{
fib = fib1 + fib2;
printf("%12d", fib);
if (i % 4 == 0)
{
printf("\n");
}
fib2 = fib1;
fib1 = fib;
}
printf("\n");
return 0;
}
标签:fib,产子,fib1,兔子,fib2,问题,long,printf From: https://www.cnblogs.com/cqdycazs/p/17330885.html