阿摩線上測驗 登入

申論題資訊

試卷:105年 - 105 農田水利會新進職員聯合統一考試_一般行政人員-電腦組:程式設計概要#90362
科目:水利會◆程式設計概要
年份:105年
排序:0

申論題內容

第一題:
    費氏數列為 1,1,2,3,5,…,定義數列之第 n 項為第 n-1 項與第 n-2 項之和且第 0 項與第 1 項均為 1,即 f1=f0=1,fn=fn-2+fn-1。請先以 C 語言運用遞迴呼叫技巧寫一程式,輸入 n 值後,可以輸出費氏數列的第 n 項值; 接著再以 C 語言重寫另一程式但不可運用遞迴呼叫技巧,同樣輸入 n 值後,可以輸出費氏數列的第 n 項值。 【20 分】

詳解 (共 1 筆)

詳解 提供者:劉志騰

int RE(int);

int NRE(int);


void main(void) {

    printf("輸入第n項:");

    scanf(" %d",&n);

    printf("第%d項為(遞迴):%d\n",n,RE(n));

    printf("第%d項為(不使用遞迴):%d\n",n,NRE(n));

}


//遞迴

int RE(int n){

    if(n==0||n==1){

        return 1;

    }else{

        return RE(n-2)+RE(n-1);

    }

}


//不用遞迴

int NRE(int n){

    if(n==0||n==1){

        return 1;

    }else{

        int x=1,y=1,i,sum;

        for(i=2;i<=n;i++){

            sum=x+y;

            x=y;

            y=sum;

        }

        return sum;

    }

}