*問題分析與算法設(shè)計(jì)
問題可以抽象成下列數(shù)學(xué)公式:
Un=Un-1+Un-2
其中:
n是項(xiàng)數(shù)(n>=3)。它就是著名的斐波那契數(shù)列,該數(shù)列的前幾為:1,1,2,3,5,8,13,21...
斐波那契數(shù)列在程序中可以用多種方法進(jìn)行處理。按照其通項(xiàng)遞推公式利用最基本的循環(huán)控制就可以實(shí)現(xiàn)題目的要求。
*程序說明與注釋
#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; /*利用通項(xiàng)公式求解N項(xiàng)的值*/
printf(i%10?"%d\t":"%d\n",un);
}
printf("\n");
}
*運(yù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
深圳北大青鳥