@SquashPL: Zerknęłam jeszcze raz na te literki i jednak miałeś źle na początku, powinno być tak http://pastebin.com/8DANL2je Jak prześledzisz sobie jak to działa to zauważysz, że niezależnie od tego ile jest krążków trzeba wszystkie oprócz największego przenieść na drążek pomocniczy, później największy na drążek docelowy, a później z powrotem pozostałe na docelowy. Ale jak masz tych krążków kilka to nawet przy przenoszeniu tych n-1 znowu musisz przenieść najpierw (n-1)-1 itd.
void hanoi (int lk, char a, char b, char c)
{
if(lk>0)
{
hanoi(lk-1, a,c,b);
cout<"<