C言語でフィボナッチ数列のサマリー問題の解決方法

フィボナッチ列の C 言語による和を求める問題を解決するには、ループまたは再帰の 2 つの方法があります。

  1. ループを使用して:最初にフィボナッチ数列の最初の 2 つの数字を保存する 2 つの変数を定義し、0 と 1 に初期化します。次に、3 番目の数字からループを使用して、各反復で最初の 2 つの数字を合計し、結果を 3 番目の数字に代入します。ループは継続し、計算された新しい数字を累積変数に追加します。最後に、累積変数の値を出力し、フィボナッチ数列の合計を表します。
  2. 循環を用いてフィボナッチ数列の和を求めるコードの例:
  3. #includeint main() {
    int n, i;
    long long sum = 0, a = 0, b = 1, c;

    printf(“項数を入力してください: “);
    scanf(“%d”, &n);

    for (i = 3; i <= n + 2; i++) {
    c = a + b;
    sum += c;
    a = b;
    b = c;
    }

    printf(“%d項までのフィボナッチ数列の和: %lld\n”, n, sum);

    return 0;
    }

  4. 再帰を使用する。再帰とは、自分自身を呼び出す関数を使用して問題を解決する方法です。ここでは、1つの整数パラメータnを受け取り、フィボナッチ数列の合計を返す再帰関数を作成できます。再帰関数の基準ケースは、nが0または1の場合、nを返します。それ以外の場合、再帰的に関数を呼び出して最初の2つの数の合計を計算し、それをnに加えて結果を返します。
  5. 再帰を利用してフィボナッチ数列の和を求めるサンプルコードを以下に示します。
  6. #includelong long fibonacciSum(int n) {
    if (n == 0 || n == 1) {
    return n;
    }
    return fibonacciSum(n – 1) + fibonacciSum(n – 2);
    }

    int main() {
    int n;

    printf(“項数を入力してください: “);
    scanf(“%d”, &n);

    long long sum = fibonacciSum(n);

    printf(“%d項までのフィボナッチ数列の和: %lld\n”, n, sum);

    return 0;
    }

ループを使用するか再帰を使用するかにかかわらず、C言語におけるフィボナッチ数列の合計を求める問題は解決可能です。どちらの手法にも長所と短所があり、通常、ループ法はより効率的ですが、再帰法はより実装および理解が容易です。どちらの手法を選択するかは、特定の要件と状況によって異なります。

bannerAds