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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить номер того элемента массива, который ближе всего к "X" http://www.cyberforum.ru/cpp-beginners/thread645576.html
помогите пожалуйста ещё??? определить порядковый номер того элемента массива, который наиболее близко к некоторому целому числу "X"?
C++ Контейнер и получение динамических объектов Привет. Как можно грамотно с точки зрения ООП реализовать класс-контейнер, где будут хранится объекты? Объекты не однотипные, а наследники. Нужно будет грамотно манипулировать(получать, сортировать итд итп) объектами по наследованному типу. Ваши идеи и примеры. Благодарю http://www.cyberforum.ru/cpp-beginners/thread645549.html
Адрессация в 2-х мерных динамических массивах и nullptr C++
Сегодня читал стаью о памяти,указателях итп Написал программу для динамического 2х мерного массива // what is array.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "iostream" #include <conio.h> using namespace std;
Приватный конструктор и деструктор C++
Зачем нужны приватный конструктор и деструктор? Как они работают?
C++ в Dev C++ 5 Win7 жалуется на возникшую проблему и просит закрыть программу. http://www.cyberforum.ru/cpp-beginners/thread645518.html
#include <iostream> #include <string> using namespace std; int main () { setlocale(LC_ALL, "Russian"); int i,n; char* m; string arr; cout << "Вас приветствует кибер-журнал" << endl << "Введите количество данных" << endl; cin >> n;
C++ инициализация перменных в конструкторе у меня есть статический вектор векторов инт(vector<vector<int>>),который мне нужно заполнить данными,но при попытке написать vector<vector<int>> Subscriber::_home_network_prefixes.push_back(prefix); ничего не выходит,точка перед push_back подчёркнута красным и пишет требуется объявление помогите понять в чём дело подробнее

Показать сообщение отдельно
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208

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

02.09.2012, 00:20. Просмотров 2971. Ответов 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 перекладываний.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru