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 7 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.
R15a0foVhiFj6
Twoje zadanie: Program wyświetla liczbę ruchów opisujących rozwiązanie zagadki Wież Hanoi dla krążków.
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 4. int licznik średnik.
Linia 5. int k średnik.
Linia 7. void hanoi otwórz nawias okrągły int n przecinek char A przecinek char B przecinek char C zamknij nawias okrągły otwórz nawias klamrowy.
Linia 8. prawy ukośnik prawy ukośnik Tutaj dopisz kod.
Linia 9. zamknij nawias klamrowy.
Linia 11. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 12. licznik znak równości 0 średnik.
Linia 13. k znak równości 7 średnik.
Linia 15. hanoi otwórz nawias okrągły k przecinek apostrof A apostrof przecinek apostrof B apostrof przecinek apostrof C apostrof zamknij nawias okrągły średnik.
Linia 16. return 0 średnik.
Linia 17. zamknij nawias klamrowy.
Linia 18. at at at.
Linia 19. language znak równości cpp17.
Linia 20. at at at.
Linia 21. Program wyświetla liczbę ruchów opisujących rozwiązanie zagadki Wież Hanoi dla otwórz nawias ostrokątny code zamknij nawias ostrokątny k otwórz nawias ostrokątny prawy ukośnik code zamknij nawias ostrokątny krążków kropka.
Linia 22. at at at.
Linia 23. at at at.
Linia 24. at at at.
Linia 25. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7.
Linia 26. import sys.
Linia 27. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły.
Linia 28. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek.
Linia 29. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły.
Linia 31. if sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły znak równości znak równości apostrof 127 apostrof dwukropek.
Linia 32. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 3. int licznik średnik.
Linia 4. int k średnik.
Linia 6. void hanoi otwórz nawias okrągły int n przecinek char A przecinek char B przecinek char C zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. if otwórz nawias okrągły n zamknij nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 8. hanoi otwórz nawias okrągły n minus 1 przecinek A przecinek C przecinek B zamknij nawias okrągły średnik.
Linia 9. licznik plus plus średnik.
Linia 10. hanoi otwórz nawias okrągły n minus 1 przecinek B przecinek A przecinek C zamknij nawias okrągły średnik.
Linia 11. zamknij nawias klamrowy.
Linia 13. if otwórz nawias okrągły n znak równości znak równości k zamknij nawias okrągły.
Linia 14. cout otwórz nawias ostrokątny otwórz nawias ostrokątny licznik średnik.
Linia 15. zamknij nawias klamrowy.
Linia 17. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 18. licznik znak równości 0 średnik.
Linia 19. k znak równości 7 średnik.
Linia 20. hanoi otwórz nawias okrągły k przecinek apostrof A apostrof przecinek apostrof B apostrof przecinek apostrof C apostrof zamknij nawias okrągły średnik.
Linia 21. return 0 średnik.
Linia 22. zamknij nawias klamrowy.
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.
RAPvJdALM1fzi
Twoje zadanie: Program wyświetla opis -tego ruchu, rozwiązującego zagadkę Wież Hanoi dla krążków.
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 3. int licznik przecinek n przecinek m średnik.
Linia 5. void hanoi otwórz nawias okrągły int n przecinek char A przecinek char B przecinek char C zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. prawy ukośnik prawy ukośnik Tutaj dopisz kod.
Linia 7. zamknij nawias klamrowy.
Linia 9. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. licznik znak równości 0 średnik.
Linia 11. n znak równości 8 średnik.
Linia 12. m znak równości 5 średnik.
Linia 13. hanoi otwórz nawias okrągły n przecinek apostrof A apostrof przecinek apostrof B apostrof przecinek apostrof C apostrof zamknij nawias okrągły średnik.
Linia 14. return 0 średnik.
Linia 15. zamknij nawias klamrowy.
Linia 16. at at at.
Linia 17. language znak równości cpp17.
Linia 18. at at at.
Linia 19. Program wyświetla opis otwórz nawias ostrokątny code zamknij nawias ostrokątny m otwórz nawias ostrokątny prawy ukośnik code zamknij nawias ostrokątny minus tego ruchu przecinek rozwiązującego zagadkę Wież Hanoi dla otwórz nawias ostrokątny code zamknij nawias ostrokątny n otwórz nawias ostrokątny prawy ukośnik code zamknij nawias ostrokątny krążków kropka.
Linia 20. at at at.
Linia 21. at at at.
Linia 22. at at at.
Linia 23. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7.
Linia 24. import sys.
Linia 25. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły.
Linia 26. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek.
Linia 27. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły.
Linia 29. if sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły znak równości znak równości apostrof Przeniesienie z C do A apostrof dwukropek.
Linia 30. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 3. int licznik średnik.
Linia 4. int n średnik.
Linia 5. int m średnik.
Linia 7. void hanoi otwórz nawias okrągły int n przecinek char A przecinek char B przecinek char C zamknij nawias okrągły otwórz nawias klamrowy.
Linia 8. if otwórz nawias okrągły n zamknij nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 9. hanoi otwórz nawias okrągły n minus 1 przecinek A przecinek C przecinek B zamknij nawias okrągły średnik.
Linia 10. licznik plus plus średnik.
Linia 11. if otwórz nawias okrągły licznik znak równości znak równości m zamknij nawias okrągły.
Linia 12. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów Przeniesienie z cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny A otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów do cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny C średnik.
Linia 13. hanoi otwórz nawias okrągły n minus 1 przecinek B przecinek A przecinek C zamknij nawias okrągły średnik.
Linia 14. zamknij nawias klamrowy.
Linia 15. zamknij nawias klamrowy.
Linia 17. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 18. licznik znak równości 0 średnik.
Linia 19. n znak równości 8 średnik.
Linia 20. m znak równości 5 średnik.
Linia 21. hanoi otwórz nawias okrągły n przecinek apostrof A apostrof przecinek apostrof B apostrof przecinek apostrof C apostrof zamknij nawias okrągły średnik.
Linia 22. return 0 średnik.
Linia 23. zamknij nawias klamrowy.
31
Ćwiczenie 3
Napisz program, który będzie wypisywał liczby krążków na poszczególnych słupkach, po wykonaniu m-tego ruchu opisującego rozwiązanie zagadki Wież Hanoi dla n krążków. Na początku wszystkie krążki powinny znajdować się na słupku początkowym. Jako pierwsza powinna zostać wypisana liczba krążków na słupku początkowym, następnie – w nowej linii – liczba krążków na słupku pomocniczym, a na końcu – w trzeciej linii – liczba krążków na słupku docelowym. Przetestuj swój program dla dziesiątego ruchu, dla wieży składającej się z ośmiu krążków.
Specyfikacja problemu:
Dane:
n – liczba krążków; liczba naturalna
m – numer ruchu, po którym ma zostać wypisana liczba krążków na słupkach; liczba naturalna dodatnia,
Wynik:
Program wypisuje liczby krążków na słupkach: początkowym, pomocniczym, docelowym, po wykonaniu m-tego ruchu opisującego rozwiązanie zagadki Wież Hanoi dla n krążków.
R1RnRfwxUzpEd
Twoje zadanie: Program wyświetla liczbę krążków na słupkach: początkowym, pomocniczym, docelowym (każdy w nowej linii), po wykonaniu -tego ruchu opisującego rozwiązanie zagadki Wież Hanoi dla - krążków.
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 3. int licznik przecinek n przecinek m przecinek krazkiNaA przecinek krazkiNaB przecinek krazkiNaC średnik.
Linia 5. void hanoi otwórz nawias okrągły int n przecinek char A przecinek char B przecinek char C zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. prawy ukośnik prawy ukośnik Tutaj dopisz kod.
Linia 7. zamknij nawias klamrowy.
Linia 9. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. licznik znak równości 0 średnik.
Linia 11. krazkiNaB znak równości 0 średnik.
Linia 12. krazkiNaC znak równości 0 średnik.
Linia 13. n znak równości 8 średnik.
Linia 14. krazkiNaA znak równości n średnik.
Linia 15. m znak równości 10 średnik.
Linia 16. hanoi otwórz nawias okrągły n przecinek apostrof A apostrof przecinek apostrof B apostrof przecinek apostrof C apostrof zamknij nawias okrągły średnik.
Linia 17. return 0 średnik.
Linia 18. zamknij nawias klamrowy.
Linia 19. at at at.
Linia 20. language znak równości cpp17.
Linia 21. at at at.
Linia 22. Program wyświetla liczbę krążków na słupkach dwukropek początkowym przecinek pomocniczym przecinek docelowym otwórz nawias okrągły każdy w nowej linii zamknij nawias okrągły przecinek po wykonaniu otwórz nawias ostrokątny code zamknij nawias ostrokątny m otwórz nawias ostrokątny prawy ukośnik code zamknij nawias ostrokątny minus tego ruchu opisującego rozwiązanie zagadki Wież Hanoi dla otwórz nawias ostrokątny code zamknij nawias ostrokątny n otwórz nawias ostrokątny prawy ukośnik code zamknij nawias ostrokątny krążków kropka.
Linia 23. at at at.
Linia 24. at at at.
Linia 25. at at at.
Linia 26. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7.
Linia 27. import sys.
Linia 28. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły.
Linia 29. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek.
Linia 30. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły.
Linia 32. expected podkreślnik output znak równości cudzysłów cudzysłów cudzysłów 5.
Linia 33. 1.
Linia 34. 2 cudzysłów cudzysłów cudzysłów.
Linia 35. input znak równości sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły.
Linia 36. if input znak równości znak równości expected podkreślnik output kropka strip otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 37. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 3. int licznik przecinek n przecinek m przecinek krazkiNaA przecinek krazkiNaB przecinek krazkiNaC średnik.
Linia 5. void hanoi otwórz nawias okrągły int n przecinek char A przecinek char B przecinek char C zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. if otwórz nawias okrągły n zamknij nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. hanoi otwórz nawias okrągły n minus 1 przecinek A przecinek C przecinek B zamknij nawias okrągły średnik.
Linia 8. licznik plus plus średnik.
Linia 9. switch otwórz nawias okrągły A zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. case apostrof A apostrof dwukropek.
Linia 11. krazkiNaA minus minus średnik.
Linia 12. break średnik.
Linia 13. case apostrof B apostrof dwukropek.
Linia 14. krazkiNaB minus minus średnik.
Linia 15. break średnik.
Linia 16. case apostrof C apostrof dwukropek.
Linia 17. krazkiNaC minus minus średnik.
Linia 18. break średnik.
Linia 19. zamknij nawias klamrowy.
Linia 20. switch otwórz nawias okrągły C zamknij nawias okrągły otwórz nawias klamrowy.
Linia 21. case apostrof A apostrof dwukropek.
Linia 22. krazkiNaA plus plus średnik.
Linia 23. break średnik.
Linia 24. case apostrof B apostrof dwukropek.
Linia 25. krazkiNaB plus plus średnik.
Linia 26. break średnik.
Linia 27. case apostrof C apostrof dwukropek.
Linia 28. krazkiNaC plus plus średnik.
Linia 29. break średnik.
Linia 30. zamknij nawias klamrowy.
Linia 31. if otwórz nawias okrągły licznik znak równości znak równości m zamknij nawias okrągły.
Linia 32. cout otwórz nawias ostrokątny otwórz nawias ostrokątny krazkiNaA otwórz nawias ostrokątny otwórz nawias ostrokątny endl otwórz nawias ostrokątny otwórz nawias ostrokątny krazkiNaB otwórz nawias ostrokątny otwórz nawias ostrokątny endl otwórz nawias ostrokątny otwórz nawias ostrokątny krazkiNaC średnik.
Linia 33. hanoi otwórz nawias okrągły n minus 1 przecinek B przecinek A przecinek C zamknij nawias okrągły średnik.
Linia 34. zamknij nawias klamrowy.
Linia 35. zamknij nawias klamrowy.
Linia 37. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 38. licznik znak równości 0 średnik.
Linia 39. krazkiNaB znak równości 0 średnik.
Linia 40. krazkiNaC znak równości 0 średnik.
Linia 41. n znak równości 8 średnik.
Linia 42. krazkiNaA znak równości n średnik.
Linia 43. m znak równości 10 średnik.
Linia 44. hanoi otwórz nawias okrągły n przecinek apostrof A apostrof przecinek apostrof B apostrof przecinek apostrof C apostrof zamknij nawias okrągły średnik.
Linia 45. return 0 średnik.
Linia 46. zamknij nawias klamrowy.