打印本文 打印本文  关闭窗口 关闭窗口  
C趣味编程百例(31)兎子产子
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 13:58:54  文章录入:杜斌  责任编辑:杜斌

94.兎子产子
   从前有一对长寿兎子,它们每一个月生一对兎子,新生的小兎子两个月就长大了,在第二个月的月底开始生它们的下一代小兎子,这样一代一代生下去,求解兎子增长数量的数列。
*问题分析与算法设计
   问题可以抽象成下列数学公式:
         Un=Un-1+Un-2
   其中:
   n是项数(n>=3)。它就是著名的菲波那奇数列,该数列的前几为:1,1,2,3,5,8,13,21...
   菲波那奇数列在程序中可以用多种方法进行处理。按照其通项递推公式利用最基本的循环控制就可以实现题目的要求。
*程序与程序注释
#include<stdio.h>
void 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
打印本文 打印本文  关闭窗口 关闭窗口