ホームページ  >  記事  >  バックエンド開発  >  C++ 関数の再帰の詳細な説明: 階乗数列とフィボナッチ数列の再帰的実装

C++ 関数の再帰の詳細な説明: 階乗数列とフィボナッチ数列の再帰的実装

王林
王林オリジナル
2024-05-02 13:24:011005ブラウズ

再帰は、関数を自己呼び出しするためのプログラミング手法であり、ベースライン条件と再帰呼び出しに分かれています。再帰を使用すると、階乗 (正の整数にそのすべての小さい正の整数の積を乗算するもの) とフィボナッチ数列 (各数値が前の 2 つの数値の合計である数列) を実装できます。

C++ 函数递归详解:递归实现阶乘和斐波那契数列

# C 関数の再帰の詳細な説明: 階乗数列とフィボナッチ数列の再帰的実装

#はじめに

再帰は、関数がそれ自体を呼び出して問題を解決できるようにするプログラミング手法です。再帰関数は通常、ベースライン条件と再帰呼び出しの 2 つの部分に分かれています。

factorial の再帰的実装

Factorial は、正の整数にその小さい正の整数をすべて掛けた積です。たとえば、5 の階乗は 5 x 4 x 3 x 2 x 1 = 120 と等しくなります。

int阶乘(int n) {
  if (n == 0) {  // 基线条件
    return 1;
  } else {
    return n * 阶乘(n - 1);  // 递归调用
  }
}

実際のケース: 10 の階乗を計算します

int result = 阶乘(10);
cout << "10 的阶乘为 " << result << endl;

出力:

10 的阶乘为 3628800

フィボナッチ数列の再帰的実装

フィボナッチ数列は、各数値が前の 2 つの数値の合計である一連の数値です。シーケンスは 0 と 1 から始まります。

int斐波那契(int n) {
  if (n == 0) {  // 基线条件
    return 0;
  } else if (n == 1) {
    return 1;
  } else {
    return 斐波那契(n - 1) + 斐波那契(n - 2);  // 递归调用
  }
}

実際のケース: フィボナッチ数列の最初の 10 個の数値を出力します

for (int i = 0; i < 10; i++) {
  cout << 斐波那契(i) << " ";
}

出力:

0 1 1 2 3 5 8 13 21 34

以上がC++ 関数の再帰の詳細な説明: 階乗数列とフィボナッチ数列の再帰的実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。