wieże hanoi

Odpowiedz Nowy wątek
2019-11-05 18:27
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;
}```
edytowany 7x, ostatnio: Josef98, 2019-11-07 16:04
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) - Tasmanian Devil 2019-11-05 18:28
zajrzyj do wikipedii, nie wystarczy> - _13th_Dragon 2019-11-05 22:12

Pozostało 580 znaków

2019-11-07 16:27
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;
}
edytowany 1x, ostatnio: Josef98, 2019-11-07 16:28
sizeof(slupki) ??? - Bartłomiej Golenko 2019-11-07 17:01

Pozostało 580 znaków

2019-11-07 17:04
0

10 sekund z google:

https://en.wikipedia.org/wiki[...]noi#With_four_pegs_and_beyond

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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