打印斐波那契(Fibonacci)數列

需求:打印 Fibonacci數列

思路:
當前項的值等於前兩項數值的和
F=(F-1)+F(F-2)

樣例:
輸入:10
輸出:1 1 2 3 5 8 13 21 34 55

輾轉相加法實現

#include<stdio.h>
int main()
{
    int num, f, f1, f2, i;
    scanf("%d", &num);    //用戶輸入打印的次數
    f1 = f2 = 1;
    
    for(i = 1; i <= num; i++)    //打印的次數
    {
        if(i==1 || i==2)    //第一項第二項數值都是 1
            printf("%d  ", f1);
        else    
            {
                f = f1+f2;
                f1 = f2;    //    移動數值
                                f2 = f;
                printf("%d  ", f);
            }
    }
    return 0; 
} 

遞歸實現

#include<stdio.h>
int fibo(int);
int main()
{
    int num, i;
    scanf("%d", &num);
    for(i = 1; i <= num; i++)
        printf("%d  ", fibo(i));
    return 0; 
} 
int fibo(int n)
{
    if(n==1 || n==2)
        return 1;
    else
        return fibo(n-1)+fibo(n-2);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章