• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Ханойские башни

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Господа программисты, помогите решить задачу!
Я начинающий программист и эти Ханойские башни пока не поддаются, поэтому обращаюсь к более опытным программистам.
Задача решается с помощью рекурсии. Имеется 3 колышка, на первый колышек нанизаны, допустим 5 дисков,и нанизаны они так, что из размеры последовательно уменьшаются к вершине. Нужно переместить все диски с первого колышка на второй колышек при условии, что каждый раз берётся только по одному диску и больший диск никогда не должен находиться над меньшим диском. Временно диски можно размещать на третьем колышке.
Если это возможно, то решить задачу без использования массивов.
VB.6 или VB.Net
 
H

HuMmmBug

Тебе ханойка нужна только на VB?
Количество дисков, надеюсь, не планируется больше 64... %))) [если известен смысл этой башни]
 
G

Guest

Да, мне надо только на VB....... Как это не ужасно....
 
H

HuMmmBug

наверное, на лабах задали? %)))

посмотрим что мона сделать. без гарантий.
 
H

HuMmmBug

как я и полагал в готовых исходниках у меня почему-то не оказалось этой задачи именно на vb.
на as, ls есть, а вот vb - никак нет. %( странно.
писать сейчас, к сожалению, нет времени - перегрузка итак по всем текущим проектам.
извини.
 
G

Guest

Пожалуйста помогите!!!
Мне нужна программа "Ханойские башни" для летней практики по C++. Программа должна быть рекурсивной. Не мотли бы вы помочь кто чем может? :)
 
A

anton

вот что я надумал

#define N 5

void h(int *i, int *j, int *k)
{ if(*i==0)return;

h(i+1, k, j);
k++; *k=*i; i--;
h(j,i,k);
}

void main()
{ int A[N],B[N],C[N];
//
инициализация массивов A=(4,3,2,1,0), B=(0,0,0,0,0), C=(0,0,0,0,0);
//
h(A,B,C);
}

Суть в том, что есть три целочисленных массива - башни. A,B,C.
Рекурсивная процедура h:
шаг1. перекладываем башенку поменьше с диска i, оставляя нижний диск, на башню j, используя диск k как промежуточный.
шаг2. перекладываем диск с i на k.
шаг3. перекладываем башенку с j на k, используя i как промежуточный.

остальное додумывай :p
 
A

anton

не принимать за истину, я не спец
 
A

Arush

Насколько мне неизменяет память эта задача с решением входила во все советские учебники по программированию :)
Может стоит поискать в интернете? :)
Кстати такие вещи должны быть например на
:D
 
S

Shooroop

Всем привет!
Нужна программа про башни на обьектно ориентированном с++, но не на билдере.
У когоесть или кто может помочь в решении данной проблемы буду признателен!!!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!