wieże hanoi

J9
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:7
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:

Kopiuj

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;
}```
edytowany 7x, ostatnio: Josef98
Tasmanian Devil
Hej! Twój post prawdopodobnie zawiera niesformatowany kod. Użyj znaczników ``` aby oznaczyć, co jest kodem, będzie łatwiej czytać. (jestem botem, ta akcja została wykonana automatycznie, prawdopodobieństwo 0.99995327)
_13th_Dragon
zajrzyj do wikipedii, nie wystarczy>
J9
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:7
0

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

Kopiuj

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;
}
edytowany 1x, ostatnio: Josef98
BG
  • Rejestracja:prawie 6 lat
  • Ostatnio:dzień
  • Postów:289
0

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.