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

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

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

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

02.09.2012, 00:20. Просмотров 3154. Ответов 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 перекладываний.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2012, 00:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ханойские башни (C++):

Ханойские башни - C++
Ханойские башни. Алгоритм я приблизительно понимаю, но программу написать не могу... Мне не нужно решение, просто скажите, может лучше...

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

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

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

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

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

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.09.2012, 00:55
Ответ Создать тему
Опции темы

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