Napisz program wyświetlający liczbę ruchów niezbędnych do rozwiązania zagadki wież Hanoi dla k krążków. Twój program powinien wypisać na ekranie liczbę wykonanych ruchów. Przetestuj swój program dla krążków.
Specyfikacja problemu:
Dane:
k – liczba krążków; liczba naturalna
Wynik:
Program wypisuje liczbę ruchów, niezbędnych do rozwiązania zagadki wież Hanoi dla k krążków.
R8JwybhLKSxDi
Przykładowe rozwiązanie zadania:
Linia 1. def hanoi otwórz nawias okrągły n przecinek a przecinek b przecinek c zamknij nawias okrągły dwukropek.
Linia 2. global zlicz.
Linia 4. if n znak równości znak równości 0 dwukropek.
Linia 5. return None.
Linia 6. if n zamknij nawias ostrokątny 0 dwukropek.
Linia 7. hanoi otwórz nawias okrągły n minus 1 przecinek a przecinek c przecinek b zamknij nawias okrągły.
Linia 8. zlicz plus znak równości 1.
Linia 9. hanoi otwórz nawias okrągły n minus 1 przecinek c przecinek b przecinek a zamknij nawias okrągły.
Linia 11. if n znak równości znak równości k dwukropek.
Linia 12. print otwórz nawias okrągły zlicz zamknij nawias okrągły.
Linia 14. zlicz znak równości 0.
Linia 15. k znak równości 7.
Linia 16. hanoi otwórz nawias okrągły k przecinek cudzysłów A cudzysłów przecinek cudzysłów B cudzysłów przecinek cudzysłów C cudzysłów zamknij nawias okrągły.
21
Ćwiczenie 2
Napisz program, który będzie wypisywał m-ty ruch, opisujący rozwiązanie Wież Hanoi dla n krążków. Niech odpowiedź będzie w postaci: „Przeniesienie z X do Y”. Przetestuj swój program dla wieży składającej się z ośmiu krążków i wypisz piąty ruch.
Specyfikacja problemu:
Dane:
n – liczba krążków; liczba naturalna
m – numer ruchu, który ma zostać wypisany; liczba naturalna dodatnia,
Wynik:
Program wyświetla m-ty ruch opisujący rozwiązanie zagadki Wież Hanoi dla n krążków.
R1Nco1EebzFI0
Przykładowe rozwiązanie zadania:
Linia 1. def hanoi otwórz nawias okrągły n przecinek a przecinek b przecinek c zamknij nawias okrągły dwukropek.
Linia 2. global zlicz.
Linia 3. if n zamknij nawias ostrokątny 0 dwukropek.
Linia 4. hanoi otwórz nawias okrągły n minus 1 przecinek a przecinek c przecinek b zamknij nawias okrągły.
Linia 5. zlicz plus znak równości 1.
Linia 6. if zlicz znak równości znak równości m dwukropek.
Linia 7. print otwórz nawias okrągły cudzysłów Przeniesienie z cudzysłów przecinek a przecinek cudzysłów do cudzysłów przecinek c zamknij nawias okrągły.
Linia 8. hanoi otwórz nawias okrągły n minus 1 przecinek b przecinek a przecinek c zamknij nawias okrągły.
Linia 10. zlicz znak równości 0.
Linia 11. n znak równości 8.
Linia 12. m znak równości 5.
Linia 13. hanoi otwórz nawias okrągły n przecinek cudzysłów A cudzysłów przecinek cudzysłów B cudzysłów przecinek cudzysłów C cudzysłów zamknij nawias okrągły.