Czołem, mam problem z wieżą Hanoi, przy małych pomocach udało mi się napisać to, jednak nie rozumiem tych przejść zbytnio:
#include <iostream>
using namespace std;
void hanoi(int n,char Begin,char Aux, char End)
{
if(n==1)
cout<<Begin<<" -> "<<End<<endl;
else
{
hanoi(n-1,Begin,End,Aux);
hanoi(1,Begin,Aux,End);
hanoi(n-1,Aux,Begin,End);
}
}
int main(int argc, char *argv[])
{
hanoi(3, 'A', 'B', 'C');
return 0;
}
Może ktoś mi wyjaśnić jak tutaj działa ta rekurencja ? Na moje oko to chyba powinna się cały czas wywoływać procedura z pierwszej lini
hanoi(n-1,Begin,End,Aux);
Aż do momentu kiedy n=1 i wypisze się A->C, oczywiście w konsoli jest co innego i program działa.