wieże hanoi

0

Witam, muszę napisać program, który dla podanej liczby krążków i słupków wykona odpowiednią ilość ruchów.
I o ile z jednym słupkiem pomocniczym nie mam problemu to nie wiem jak zrobić tak, żeby dla podanej ilości słupków program wiedział, że ma dodatkowe słupki
do wykorzystania. Wcześniej nie było problemu bo był jeden niezmienny pomocniczy słupek. Oto co mam:


using namespace std;

void hanoi(int krazki, int start, int stop, int slupki)
{
  // przekłada krążki z start korzystając z pomoc na stop
  if (krazki > 0)
  {
  	int pomoc = 6-start-stop;
    hanoi(krazki-1,start,pomoc,slupki);
	cout << "z " << start << " na " << stop << endl;
	hanoi(krazki,pomoc,stop,slupki);

    

  }
}

int main(int argc, char *argv[])
{
  hanoi(3, 1, 2, 4);
  return 0;
}```
0

Napisałam taki program dla 4 słupków? czy to dobry pomysł? jakie są błędy (działa źle).


using namespace std;

void hanoi(int krazki, int start, int stop, int slupki)
{
  // przekłada n krążków z A korzystając z B na C
  if (krazki > 0);
  {
  	int i;
  	for(i=2;i<sizeof(slupki)-1;i++)
  	{
  		hanoi(krazki-1,start,i,slupki);
  		cout << "z " << start << " na " << stop << endl;
		hanoi(krazki-1,i,stop,slupki);
	  }
  	//int pomoc = 6-start-stop;
    //hanoi(krazki-1,start,pomoc,slupki);
	//cout << "z " << start << " na " << stop << endl;
	//hanoi(krazki,pomoc,stop,slupki);
    //cout << A << " -> " << C << endl;
    //hanoi(ile_k-1, B, A, C);
    
  }
}

int main(int argc, char *argv[])
{
  hanoi(3, 1, 2, 4);
  return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1