C 再帰関数の終了条件には次のものが含まれます。 ベースライン条件: 関数が結果を直接返すことができる状態に達したかどうかを確認し、通常は特定の条件またはパラメーター値がしきい値を満たすかどうかを判断します。再帰終了条件: ベースライン条件の代替または追加で、再帰の深さを追跡するか最大再帰の深さ制限を設定することによって、一定回数の再帰呼び出し後に関数が停止するようにします。
C 再帰関数の終了条件
再帰関数は、それ自体を繰り返し呼び出すことで問題を解決します。無限再帰ループに陥るのを防ぐには、明確な終了条件を定義する必要があります。 C では、終了条件は通常、次の方法で実装されます:
1. ベースライン条件:
bool isEven(int n) { if (n == 0) { // 基线条件:当 n 为 0 时,返回 true return true; } else { return isEven(n - 1); // 递归调用 } }
2. 再帰的終了条件:
int fibonacci(int n) { if (n <= 1) { // 基线条件:当 n <= 1 时,返回 n return n; } else if (n > MAX_RECURSION_DEPTH) { // 递归终止条件:当递归深度超过限制时,返回错误值 return -1; } else { return fibonacci(n - 1) + fibonacci(n - 2); // 递归调用 } }
実際的なケース
次の関数例は、指定された数値の階乗を計算します:
int factorial(int n) { if (n == 0) { // 基线条件:当 n 为 0 时,返回 1 return 1; } else { return n * factorial(n - 1); // 递归调用 } }
以上がC++ の再帰関数の終了条件は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。