如有一个兔子每个月生一个小兔子,小兔子一个月后才开始生产。这样,第一个月一只,第二个月两只,第三个月三只······
数列具体为:0 1 2 3 5 8 13 21······
我认为算法理解不是难点,用程序实现也不是难点,而每个月的兔子具体生产个数的理解,才是重点,可能是我还没有领略此算法精华,总觉得思考时没有什么拐弯的地方,看来以后还得看看,若果您有什么独到的理解,还请交流······
下面是程序具体实现:(c语言)
************************************************************************************************************************************************************************
#include<stdio.h>
#include<stdlib.h>
#define N 25
int main(void)
{
int Fib[N] = {0};
int i;
printf("这里定义的费式数列长度为25,可以在代码中修改N的定义修改其长度\n");
Fib[0] = 0;
Fib[1] = 1;
for(i=2;i<N;i++)
Fib[i] = Fib[i-1]+Fib[i-2];
for(i=0;i<N;i++)
printf("%d\n",Fib[i]);
printf("\n");
}
**********************************************************************************************************************************************************************