PDA

View Full Version : Classicheskaya zadacha pro bashni.


hov
Oct 8, 2002, 16:33
Zadachka iz knijki Deitela.
Napisat' iterativnuiu versiu reshenia zadachi o Xanoiskix bashniax
Napomniu imeetsia 3 kolyshka i 'n' diskov raznyx razmerov. Nujno peremestit' vse diski s 1-ogo na 2-oi kolyshek tak chtoby ni razu ne postavit' bolshii disk na men'shii.

Rekursivnaia versia
void Xanoi(int n, int kol1, int kol2 ,int tempkol)
{
if (n==1)
cout << kol1 << &quot;->&quot; << kol2 << endl;
else
{
Xanoi(n-1,kol1,tempkol,kol2);
cout << kol1 << &quot;->&quot; << kol2 << endl;
Xanoi(n-1,tempkol,kol2,kol1);
}
}

hov
Oct 8, 2002, 16:52
to moderator: sorry, sxal tegh em post arel, kareli a qcel Algorithms-i mej.

Dream_InspectoR
Oct 9, 2002, 00:53
Итерация от человека, а рекурсия от Бога. ;)

Agregat
Oct 9, 2002, 14:08
Originally posted by Dream_InspectoR:
Итерация от человека, а рекурсия от Бога. ;) Прелестная фраза... Рекурсия редкостная красота.
Обожаю... :) ))

hov
Oct 12, 2002, 17:42
I vse ?

Dark Abyss of Yerevan
Oct 26, 2002, 03:29
Берешь свою исходную прогу на С, компилируешь, потом дизассемблируешь и получаешь ту же прогу но без явной рекурсии :) Правда итеративной эту программу тоже никак не назовешь, на самом деле там просто будут в соответстующих местах стоять push, call и pop
:D

Ektich
Nov 2, 2002, 02:04
hov а твоя функция стек не сожрет?
рекурсия - красивая вещь, но все мои эксперименты закончились после первого же переполнения стека (было это давно, на TurboPascal 5.5 под DOS-ом).

Dark
Nov 5, 2002, 06:14
Kogda bog zlitsya poluchaetsja primerno tak kak s rekursivnoy programmoj bez uslovija vozvrata ;-)
A process poluchaet v xudshem sluchai signal KILL ;)