C语言编程: 兎子产子

来源:网络时间:2011-06-24

  从前有一对长寿兎子,它们每一个月生一对兎子,新生的小兎子两个月就长大了,在第二个月的月底开始生它们的下一代小兎子,这样一代一代生下去,求解兎子增长数量的数列。

  *问题分析与算法设计

  问题可以抽象成下列数学公式:

  Un=Un-1+Un-2

  其中:

  n是项数(n>=3)。它就是着名的斐波那契数列,该数列的前几为:1,1,2,3,5,8,13,21...

  斐波那契数列在程序中可以用多种方法进行处理。按照其通项递推公式利用最基本的循环控制就可以实现题目的要求。

  *程序说明与注释

  #include

  int main()

  {

  int n,i,un1,un2,un;

  for(n=2;n<3;)

  {

  printf("Please enter required number of generation:");

  scanf("%d",&n);

  if(n<3) printf("\n Enter error!\n"); /*控制输入正确的N值*/

  }

  un=un2=1;

  printf("The repid increase of rabbits in first %d generation is as felow:\n",n);

  printf("l\tl\t");

  for(i=3;i<=n;i++)

  {

  un1=un2;

  un2=un;

  un=un1+un2; /*利用通项公式求解N项的值*/

  printf(i%10?"%d\t":"%d\n",un);

  }

  printf("\n");

  }

  *运行结果

  Please enter required number of generation: 20

  The repid increase of rabbits in first 20 generation is as felow:

  1 1 2 3 5 8 13 21 34 55

  89 144 233 377 610 987 1597 2584 4181 6765

发表评论

最新评论(共0条)