|
Post by huangno1 on Feb 24, 2017 8:42:47 GMT -8
程式說明
您可能還記得,斐波那契數列(費氏級數)是一個由0和1開始的數列,每個數字是前兩個數字的總和,也就是 F[n] = F[n-1] + F[n-2] ,設F[0] = 0 和 F[1] = 1
。
除了起始數列是0、1、1和每個數字是前三個數字的總和之外,斐波那契數列和斐波那契數列是類似的。亦即T[n] = T[n-1] + T[n-2] + T[n-3] 設 T[0] = 0, T[1] = 1 和 T[2] = 1
。
前11個斐波那契
數列依序是0, 1, 1, 2, 4, 7, 13, 24, 44, 81,149.
輸入
輸入的每一行是一個整數。最大的輸入值是30。輸入的最後一行是-1。
3
9
11
0
-1
輸出
對於每一個非負數的輸入,該程式必須使用整數作為輸入斐波那契數列的階數和列印該階斐波那契的數值。
2
81
274
0 ***以下為參考程式***(注意!!複製貼上此程式碼,將對你沒好處)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MAX 30+10
int main() {
int n , T [ 30 ] = { } , i ;
T [ 0 ] = 0 , T [ 1 ] = 1 , T [ 2 ] = 1 ;
for ( n = 3 ; n <= 30 ; n ++ )
{
T [ n ] = T [ n - 1 ] + T [ n - 2 ] + T [ n - 3 ] ;
// printf ( "%d\n" , T [ n ]) ;
}
scanf ( "%d" , &i ) ;
while ( 1 )
{
if ( i == -1 )
break ;
else if ( i == 0 || i == 1 )
printf ( "0" ) ;
else if ( i == 2 )
printf ( "1" ) ;
else
{
T [ i ] = T [ i -1 ] + T [ i - 2 ] + T [ i - 3 ] ;
printf ( "%d\n" , T [ i ] ) ; }
scanf ( "%d" , &i ) ;
}
//0, 1, 1, 2, 4, 7, 13, 24, 44, 81,149.
/*輸入的每一行是一個整數。最大的輸入值是30。輸入的最後一行是-1。
3
9
11
0
-1
輸出
對於每一個非負數的輸入,該程式必須使用整數作為輸入斐波那契數列的階數和列印該階斐波那契的數值。
2
81
274
0
*/
return 0;
}
|
|