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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
hardxx
Сообщений: n/a
#1

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

18.04.2014, 20:58. Просмотров 1332. Ответов 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++
Ханойская башня является одной из популярных головоломок XIX века. Даны три стержня, на один из которых нанизаны восемь колец, причем...

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

Ханойская башня - C++
23. Написать программу, которая печатает последовательность действий (в виде «перенести диск с q на r», где q и r – это А,В или С),...

Ханойская башня - C++
Использование переборных методов (разработка программ решения задачи «Ханойская башня»). на С++

Ханойская башня- тесты - C++
Переместить m дисков с одного из трех стержней на другой, соблюдая: 1) диски можно перемещать с одного стержня на другой только по...

Ханойская башня еще раз - C++
Ну ни как не могу понять.Объясните как тут рекурсия работает. #include <iostream> using namespace std; void...

1
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
18.04.2014, 21:08 #2
hardxx, http://ru.wikipedia.org/wiki/Ханойская_башня
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2014, 21:08
Привет! Вот еще темы с ответами:

Задача Ханойская башня. Написать порядок действий в графической интерпритации - C++
День добрый! Учусь на 1 курсе ИВТ. Препод по программированию дал для общего развития написать прогу по ханойской башне в консоли. Но нужно...

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

Рекурсия (нужны комментарии) "Ханойская башня" - C++
Помогите пожалуйста, обьясните написание программы, какие переменные и зачем используются, буду очень благодарна)) #include <iostream>...

Ханойская башня и "любимая" рекурсия - C++
Здравствуйте. Нашёл здесь на форуме код, для решения данной задачи, но самому мало понятно, что и как, может кто подробно разъяснить? ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru