Írjuk le az algoritmust lépésekben

· X - kezdeti állapot;

Y közbenső állapot;

· Z a végső állapot. (lásd a fenti ábrát)

1 lépés - az X tengelyből az Y rúdhoz (n-1) helyezzük el a lemezt, a Z rúd segítségével segédszerként;

2 lépés - egy alsó lemez áthelyezése az X rúdról a Z rúdra;

3. lépés - az (Y-1) áthelyezi a lemezt az Y rúdról a Z rúdra, az X szabad rúd segítségével.

4. Így rekurzív eljárásunk van

Hanoi eljárás (n˸ szó, x, y, z˸ char);

majd írj ('Move', x, 'on', z)

A természetes szám tényleges számításának problémája.

Annak érdekében, hogy kiszámítsuk N., szükségünk van az értékre (N-1)! szorozzuk N-vel, 1! = 1-gyel. Általános formában ez a következőképpen írható

A faktoriális számításhoz a the függvényt írjuk le

függvény faktorikus (n˸ egész) ˸ Longint;

mások factorial˸ = n * faktoriális (n-1)

fontolja meg a funkció hívásainak sorrendjét n = 5 értékre.

ü A függvény első hívása a főprogramban történik. Felhívjuk a figyelmet arra, hogy minden funkcióhoz való hozzáféréskor helyi változókból álló készlet jön létre (ebben az esetben a tényleges függvényben csak egy helyi változó n van). Minden egyes helyi változóra a memória a függvény időtartamára kerül kiosztásra. A funkció befejezése után a memória felszabadul és a változók törlődnek.

Tehát hogyan. akkor a vezérlés átkerül az Else ágba, és a függvény faktorikus értékét az n * factorial (n-1) érték adja, azaz 5 * faktoriális (4).

A tényleges függvény második hívása a 4. paraméterrel történik. Ezt a folyamatot addig ismételjük, amíg a paraméter értéke 1 lesz. Ezután n = 1, és ezáltal a függvény tényleges értéke = 1.

Így n = 1 a rekurzió végének feltétele.

A vezérlés átkerül a hívási pontra, vagyis az előző függvényre n = 2˸ factorial˸ = n * faktoriális (n-1). akkor factorial˸ = 2 * 1, tehát factorial (2) = 2. Visszatérünk, felfelé haladva a rekurzív hívások lánca mentén. Így kapjuk a tényleges (5) = 120 értéket.

függvény faktorikus (n˸ egész) ˸ Longint; ha n = 1, akkor factorial˸ = 1 egyéb factorial˸ = n * faktoriális (n-1) vége;

Kapcsolódó cikkek