递归&循环实现Fibonacci数列

递归实现Fibonacci数列

程序实现的: 1 1 2 3 5 8 13 21 34 55……… 这么一个数列的功能(数列索引index = [1,2……N])


方法一: 利用函数递归实现Fibonacci数列

#include 
#include 

#define N  10

static int Print_Fibonacci( int index );

int main(void)
{
    int i = 1;
    int result = 0;

    printf("index: ");
    while ( i <= N )
        printf("%d\t", i++);

    printf("\n\n"); 

    printf("value: ");
    for ( i = 1; i<= N ; i++)
    {
        result =  Print_Fibonacci( i );
        printf("%d\t", result );
    }

    return 0;
}

static int Print_Fibonacci( int index )
{
    if ( index < 3 )    
        return 1;
    else
        return Print_Fibonacci( index -1 ) + Print_Fibonacci( index - 2 );

}

结果如图:

递归&循环实现Fibonacci数列_第1张图片


方法一: 利用循环实现Fibonacci数列

#include 
#include 
#define N   10

int main(void)
{
    int  Fibonacci[N] = { 0 };
    int  i = 1;

    Fibonacci[0]=1;
    Fibonacci[1]=1;

    printf("index: ");
    while ( i <= N )
        printf("%d\t", i++ ); 

    for( i = 2; i <= N; i++ )
        Fibonacci[ i ] = Fibonacci[ i - 1 ]+Fibonacci[ i - 2 ];

    printf("\n");

    printf("value: ");

    for( i = 0; i < N; i++ )
        printf( "%d\t", Fibonacci[ i ] );

    return 0;
}

结果如图:

递归&循环实现Fibonacci数列_第2张图片


你可能感兴趣的:(数据结构和算法)