Форум программистов, компьютерный форум CyberForum.ru

Ханойская башня - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
hardxx
Сообщений: n/a
18.04.2014, 20:58     Ханойская башня #1
Легенда гласит, что, в Великом храме города Бенарас, под собором, отмечающим середину мира, находится бронзовый диск, на котором укреплены 3 алмазных стержня, высотой в один локоть и толщиной с пчелу. Давным-давно, в самом начале времен монахи этого монастыря провинились перед богом Брамой. Разгневанный, Бог Брама поместил на один из стержней 64 диска из чистого золота, причем так, что каждый меньший диск лежит на большем. Монахи должны были переместить все диски с одного стержня на другой при условии, что при каждом перемещении можно брать только один диск и больший диск никогда нельзя положить на меньший. Третий стержень предоставляет возможность для временного размещения дисков. Как только все 64 диска будут переложены со стержня, на который Бог Брама сложил их при создании мира, на другой стержень, башня вместе с храмом обратятся в пыль и под громовые раскаты погибнет мир.


Напишите программу решения этой задачи.
Перемещение N дисков может быть легко представлено в терминах перемещения только N-1 диска (и, следовательно, рекурсивно):
1. Переместить N-1 дисков с колышка 1 на колышек 2, используя колышек 3 как место временного размещения.
2. Переместить последний диск ( наибольший ) с колышка 1 на колышек 3
3. Переместить N-1 дисков с колышка 2 на колышек 3, используя колышек 1 как место временного размещения.
Используйте рекурсивную функцию с четырьмя параметрами:
1. Количество дисков, которое должно быть перемещено.
2. Колышек, на который эти диски нанизаны первоначально.
3. Колышек, на который эта группа дисков должна быть перемещена.
4. Колышек, используемый как место временного размещения.
Ваша программа должна печатать четкие инструкции, что нужно делать для перемещения дисков с начального колышка на конечный. Например, чтобы передвинуть группу из трех дисков с колышка 1 на колышек 3, ваша программа должна напечатать следующую последовательность перемещений:
1->3 (это обозначает перенос диска с 1-го колышка на 3-ий)
1->2
3->2
1->3
2->1
2->3
1->3
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 20:58     Ханойская башня
Посмотрите здесь:

C++ Ханойская башня
Ханойская башня C++
C++ Ханойская башня
Ханойская башня еще раз C++
Ханойская башня C++
Ханойская башня- тесты C++
Задача Ханойская башня. Написать порядок действий в графической интерпритации C++
Нужна рабочая программа "Ханойская башня" в консоли C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
18.04.2014, 21:08     Ханойская башня #2
hardxx, http://ru.wikipedia.org/wiki/Ханойская_башня
Yandex
Объявления
18.04.2014, 21:08     Ханойская башня
Ответ Создать тему
Опции темы

Текущее время: 14:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru