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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
lleonov
-92 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 33
#1

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

11.03.2011, 15:32. Просмотров 2127. Ответов 17
Метки нет (Все метки)

Легенда гласит,что где-то в Ханое находится храм,в котором размещеа следущая конструкция:на основании укреплены 3 алмазных
стержня,на один из которых при сотворении мира Брахиа нанизал 64 золотых диска с отверстием посередине,причем оказался самый
большой диск,на нем-чут меньший и так далее,пока на верхушке пирамиды не оказался самый маленький диск.Жреца храма обязаны
перекладывать диски по следующим правилам:
1)За один ход можно перенести только один диск.
2)Нельзя класть больший диск на меньший.
Руководствуясь этими нехитрыми правилами,жрецы должны перенести и сходную пирамиду с 1-го стержня на 3-й.Как только они справятся с
этим заданием,наступит конец света.
Мы предлагаем Вам решить данную задачу с помощью рекурсии.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2011, 15:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ханойские башни (C++):

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

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

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

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

Ханойские башни - C++
Решил задачу о ханойских башнях рекурсивно: void HanBashR(int count, int start, int mid, int final){ if(count == 2){ cout <<...

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

17
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
11.03.2011, 15:58 #2
тут была похожая задача. потратьте немного своего времени на поиск
http://www.cyberforum.ru/cpp-beginners/thread153746.html
0
lleonov
-92 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 33
11.03.2011, 16:35  [ТС] #3
Ну решите пожалуйста!!Или не можите?
0
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
11.03.2011, 16:41 #4

Не по теме:

ваш пост похож на: "а прыгни в колодец, или слабо?"


задача была решена, причем решение подробно разбиралось.
0
lleonov
-92 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 33
11.03.2011, 16:43  [ТС] #5
Я чот решения не вижу!!Решите мне плиз!!
0
electron4ik
-2 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 6
11.03.2011, 16:49 #6
Сильно много требований... Тебе сказали, что решили её, потрудись поискать!
0
slice
35 / 78 / 4
Регистрация: 04.11.2010
Сообщений: 249
11.03.2011, 16:50 #7
троль =) косит под дурачка =)
0
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
11.03.2011, 17:12 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
using namespace std;
 
/*
    функция принимает три аргумента
    int in - от куда
    int to - куда
    int n - сколько
*/
void move_tower(int in,int to,int n)
{
    if(n==1)// Если 1 диск просто переместить
    {
        cout << in << " -> " << to << endl;
    }
    else //Если больше одного
    {
        int free = 6-(in+to);//Ишем свободное место
        move_tower(in,free,n-1); // Перемешаем все диски кроме одного на свободное место
        move_tower(in,to,1);//Перемешаем нижний диск на нужное место
        move_tower(free,to,n-1);//Перемешаем те диски на нижний
    }
}
 
int main()
{
    int n;
    cout << "n = ";cin >> n;
    move_tower(1,3,n);
    cin.get();
    cin.get();
}
0
lleonov
-92 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 33
11.03.2011, 17:41  [ТС] #9
Надо решить через рекурсию!!!!!!!
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
11.03.2011, 17:43 #10
lleonov, вам и решили через рекурсию.
0
electron4ik
-2 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 6
11.03.2011, 18:13 #11
lleonov, прочитай в учебнике, что такое рекурсия, а потом по кнопкам бей...
0
lleonov
-92 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 33
11.03.2011, 18:27  [ТС] #12
а можете обьяснить а то вводиш цыфру а оно ещё какийта цыфры!!плиз!!
0
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
11.03.2011, 23:59 #13
Мне конечно не лень но на твоем месте я бы вбил в гугл(или яндекс, как хочешь) "Ханойская башня".
В общем мы просим ввести число(количество дисков которые надо переставить). Стережешь на котором в начале расположены диски обозначим - 1, пустой - 2, куда переставить - 3. Ну а
ещё какийта цыфры
это наши перестановки. Надеюсь так понятно.
0
Kastaneda
Jesus loves me
Эксперт С++
4730 / 2934 / 242
Регистрация: 12.12.2009
Сообщений: 7,443
Записей в блоге: 2
Завершенные тесты: 1
12.03.2011, 05:04 #14
Вот, вся тема - разжовывание рекурсии на примере ханойской башни. Должно помочь)
0
Lerochka
0 / 0 / 0
Регистрация: 13.03.2011
Сообщений: 29
28.03.2011, 13:45 #15
При запуске программы на Borland C++ for Dos выдает ошибку unable to open include file "iostream"
когда пишу так #include <iostream.h> тогда выдает ошибку такую Deslaration syntax error для второй строки. что делать?????? помогите очень нужна эта задача.
0
28.03.2011, 13:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2011, 13:45
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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