C趣味編程百例(31)兎子產(chǎn)子

字號:

94.兎子產(chǎn)子
     從前有一對長壽兎子,它們每一個月生一對兎子,新生的小兎子兩個月就長大了,在第二個月的月底開始生它們的下一代小兎子,這樣一代一代生下去,求解兎子增長數(shù)量的數(shù)列。
    *問題分析與算法設(shè)計
     問題可以抽象成下列數(shù)學(xué)公式:
     Un=Un-1+Un-2
     其中:
     n是項數(shù)(n>=3)。它就是的菲波那奇數(shù)列,該數(shù)列的前幾為:1,1,2,3,5,8,13,21...
     菲波那奇數(shù)列在程序中可以用多種方法進行處理。按照其通項遞推公式利用最基本的循環(huán)控制就可以實現(xiàn)題目的要求。
    *程序與程序注釋
    #include
    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");
    }
    *運行結(jié)果
    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