首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言實作:建立長度為20的陣列儲存費波納契數列前20項

     編輯:關於C語言

費波納契數列陣列實作教學

費波納契數列是程式設計入門的經典題目,本文將示範如何使用 C 語言建立一個長度為 20 的陣列,並將費波納契數列的前 20 項依序存入陣列中,最後印出結果供驗證。

問題描述

建立一個長度為 20 的整數陣列,利用遞迴函數計算費波納契數列的前 20 項(第 0 項至第 19 項),並將計算結果依序存入陣列,最後輸出每一項的值。

演算法邏輯

  • 定義遞迴函數 fib(n) 計算第 n 項費波納契數:fib(0)=0、fib(1)=1、fib(n)=fib(n-1)+fib(n-2)。
  • 在 main() 中宣告 int num[20] 陣列。
  • 使用 for 迴圈呼叫 fib(i) 將結果存入 num[i]。
  • 再以另一個迴圈印出陣列內容,格式為「第 XX 個費波納契數有: YYY」。

完整程式碼

/* 程式標頭註解 */
#include <stdio.h>

int fib(int n);  // 宣告遞迴函數

int main()
{
    int i;
    int num[20];

    for(i = 0; i < 20; i++)
    {
        num[i] = fib(i);
    }

    for(i = 0; i < 20; i++)
    {
        printf("第%2d個費波納契數有:%d\n", i+1, num[i]);
    }

    return 0;
}

// 遞迴函數定義
int fib(int n)
{
    if(n == 0)
    {
        return 0;
    }
    else if(n == 1)
    {
        return 1;
    }
    else
    {
        return fib(n-1) + fib(n-2);
    }
}

執行結果示意

費波納契數列執行結果

補充說明

此範例採用遞迴寫法,雖然程式碼簡潔易懂,但遞迴呼叫會產生大量重複計算,當 n 較大時效率較低。實務上可改用迴圈或動態規劃(備忘錄法)來優化效能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved