6.7. Podsumowanie 187
(
while (n!=l)
(n--;b~3-a-b; M*=2;}
cout << "Przesuń dysk nr "<< n << " z " << a « " na "« b «endl; while ((M!=1) && (M%2))
(M=M/2; n=n+l; a=3-a-b;| if(M==l)
goto KONIEC;
M+ + ;
n++; b=3-a-b;
cout << "Przesuń dysk nr "<< r. << " z " << a << " na "« b <<endl; n--; a=3-a-b;
(while (M!=l);
KONIEC:
)
Uruchomienie programu przekonuje, iż obie procedury wykonują dokładnie to samo zadanie i dają identyczne rezultaty.
Omówione w tym rozdziale techniki derekursywacji algorytmów nie wyczerpują zestawu dostępnych metod służących do tego celu, jednak prezentują wachlarz dostatecznie szeroki, aby móc obsłużyć większość najczęściej spotykanych procedur rekurencyjnych. Prezentowane metody mogą ponadto posłużyć jako wzorzec przy rozwiązywaniu zadań podobnych, alt- nie całkowicie zgodnych z omówionymi schematami.