Module: (C++) 再帰


Problem

1/12

再帰。これは何ですか?

Theory Click to read/hide

プロシージャまたは関数には、その中に別のプロシージャへの呼び出しが含まれる場合があります。サブルーチン自体を呼び出すこともできます。この場合、コンピュータは気にしません。また、彼はいつものように、出会った命令を上から下まで一貫して実行します。

数学を覚えているなら、そこで数学的帰納法の原理に出会うことができます。それは以下の通り
です。
あるステートメントがすべての自然なn に対して true である場合
    1.n = 1 および
の場合に有効です。     2. 任意の自然な n = k に対するステートメントの妥当性から、n = k+1
に対してそれが真であることがわかります。
プログラミングではこの手法を再帰
と呼びます。
再帰は、指定された単純な基本ケースに基づいて、セット自体に関してオブジェクトのセットを定義する方法です。


再帰的は、それ自体を直接、または他のプロシージャや関数を通じて呼び出すプロシージャ (関数)とも呼ばれます
再帰的プロシージャの例: <プレ> void Rec(int a) { if (a>0) Rec(a-1); cout << a; } 再帰の作業はフローチャートで概略的に表すことができます。


 
Rec() プロシージャはパラメータ 3 で実行されます。次に、パラメータ 3 のプロシージャ内でパラメータ 2 のプロシージャが呼び出され、パラメータ 0 のプロシージャが呼び出されるまで同様に続きます。パラメータ 0 が呼び出された場合、再帰呼び出しはすでに行われず、パラメータ 0 を持つプロシージャは数値 0 を出力して終了します。次に、制御はパラメータ 1 を持つプロシージャに戻り、数値 1 を出力して作業を終了します。パラメータ 3 のプロシージャの前。

呼び出されたすべてのプロシージャは、作業が完了するまでメモリに保存されます。同時プロシージャの数は、再帰の深さと呼ばれます。

Problem

解析されたプロシージャを使用して、必要な行をメイン プログラムに追加します。
プログラムがそのような応答を返す理由を理解する