C 再帰
再帰
再帰は、関数呼び出し自体を行う手法です。この手法は、複雑な問題を解決しやすい単純な問題に分解する方法を提供します。
再帰は理解するのが少し難しいかもしれません。それがどのように機能するかを理解する最善の方法は、それを試してみることです。
再帰の例
2 つの数値を加算するのは簡単ですが、数値の範囲を加算するのはもっと複雑です。次の例では、再帰を使用して、2 つの数値を加算する単純なタスクに分割することで、数値の範囲を加算しています。
例
int sum(int k);
int main() {
int result = sum(10);
printf("%d", result);
return 0;
}
int sum(int k) {
if (k > 0) {
return k + sum(k - 1);
} else {
return 0;
}
}
例の説明
sum()
関数が呼び出されると、パラメーター k
を k
より小さいすべての数値の合計に加算し、結果を返します。 k が 0 になると、関数は 0 を返します。プログラムは実行時に次の手順に従います。
k
が 0
の場合、関数は自分自身を呼び出さないため、プログラムはそこで停止し、結果を返します。
開発者は再帰に細心の注意を払う必要があります。これは、決して終了しない関数や、過剰な量のメモリやプロセッサ パワーを使用する関数を簡単に作成してしまう可能性があるためです。ただし、再帰を正しく記述すると、非常に効率的で数学的に洗練されたプログラミング手法になります。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。