一、题目-古典问题(兔子生崽)
有一对兔子,从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,
假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....,
即下个月是上两个月之和(从第三个月开始)
一、传统方法
#include <stdio.h>
int main()
{
int a = 1;
int b =1;
int i = 0;
for ( i = 1; i <=20; i++)
{
printf("%12d%12d",a,b);
a = a+b;
b = b+a;
if (i%2==0)
{
printf("\n");
}
}
return 0;
}
二、利用斐波那契数列求解
#include <stdio.h>
int Fib(int n)
{
if (n<=2)
{
return 1;
}
else
{
return Fib(n-1)+Fib(n-2);
}
}
int main()
{
int n = 0;
int i = 0;
int ret = 0;
printf("请输入一个数:");
scanf("%d",&n);
ret = Fib(n);
printf("%d,",ret);
return 0;
}