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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.83
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
#1

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

02.09.2012, 00:20. Просмотров 3111. Ответов 4
Метки нет (Все метки)

Решил задачу о ханойских башнях рекурсивно:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void HanBashR(int count, int start, int mid, int final){
    if(count == 2){
        cout << start << " -> " << mid << endl;
        cout << start << " -> " << final << endl;
        cout << mid << " -> " << final << endl;
    }else if(count > 2){
        HanBashR(count - 1, start, final, mid);
        cout << start << " -> " << final << endl;
        HanBashR(count-1,mid,start,final);
    }else if(count == 1)
        cout << start << " -> " << final;
    else if(count == 0)
        cout << "Действий не требуется." << endl;
}
Вот думаю, как переписать без рекурсии. Может быть у кого-то есть идеи?

Добавлено через 18 минут
Неужели тут не пытливых умов?

Добавлено через 21 минуту
Данная функция должна делать следующее (при 1 вызове функции start = 1, mid = 2, final = 3):
Функция должна выдавать последовательность того, как переложить n дисков с 1 колышка на 3 колышек, причём все n дисков первоначально расположены на 1 колышке , и все диски разных размеров. Диски на 1 колышке лежат от большего к меньшему (начиная снизу и двигаясь вверх).
При перекладывании нельзя класть больший диск на меньший диск.

Добавлено через 1 минуту
Для n дисков потребуется при оптимальном варианте: 2^n - 1 перекладываний.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2012, 00:20     Ханойские башни
Посмотрите здесь:

Ханойские башни - C++
Головоломка “Ханойские башни” состоит из трех стержней, пронумерованных числами 1, 2, 3. На стержень 1 надета пирамидка из n дисков ...

Ханойские башни - C++
Ребята, помогите разобраться с алгоритмом, то что сначала перемещаются n-1 дисков на вспомогательный стержень, затем n-ый нижний диск на...

Ханойские башни - C++
Кто-то из вас может решить адачу о ханойских башнях на си++ рекурсивным способом, а тоя никак не могу догнат что в даное задаче является...

Ханойские башни - C++
У Дейтлов есть задача: Не могу до конца сформулировать алгоритм. Предположим, я беру 3 колышка и 4 диска int k1, k2, k3;...

Ханойские башни - C++
Уважаемые программисты. Срочно очень нужно рекурсивное решение задачи “Ханойские башни” на С# с графическим отображением. Может у...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
02.09.2012, 00:22     Ханойские башни #2
описание задачи приведи. лень гуглить. а ум пытливится и пытливится... а гуглить ленится
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
02.09.2012, 00:33  [ТС]     Ханойские башни #3
Вот, хочу решить без рекурсии.
Миниатюры
Ханойские башни   Ханойские башни  
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
02.09.2012, 00:34  [ТС]     Ханойские башни #4
Рисунки надо смотреть сначала 2, а потом 1.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2012, 00:55     Ханойские башни
Еще ссылки по теме:

Ханойские башни - C++
Начальная стопка имела 64 диска, нанизанных на один колышек так, что их размеры последовательно уменьшались к вершине. Монахи пытались...

Ханойские башни: демонстрация решения - C++
Добрый день! Требуется решить такую задачу Для начала, хотелось бы попросить помочь с созданием хотя бы прямоугольников в...

Ханойские башни, вывод решения по шагам - C++
Помогите мне пожалуйста!У меня есть готовый исходник решения этого алгоритма!Необходимо сделать вывод по шагам( с наглядным изображением...

Ханойские башни, объясните принцип работы! - C++
Можете мне &quot;расписать&quot; все что происходит в этом коде, плюс отдельные вопросы в &quot;комментариях&quot;, так что бы я сам смог это объяснить если...

Ханойские башни (нужна блок-схема) - C++
Помогите сделать блок-схему для игры Ханойские башни.

Реализовать алгоритм решения задачи «Ханойские башни» - C++
задание: Реализовать алгоритм для решения задачи «Ханойские башни». Выписать последовательность ходов для перекладывания n дисков башни...


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

Или воспользуйтесь поиском по форуму:
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
02.09.2012, 00:55     Ханойские башни #5
Афаик, алгоритм их решения рекурсивен, так что если идти на принцип, то можно написать и без рекурсии, но со стеком, что в принципе одно и то же.
Yandex
Объявления
02.09.2012, 00:55     Ханойские башни
Ответ Создать тему
Опции темы

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