Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Ханойские башни


Автор: fantic 3.4.2007, 09:13
Требуется сформулировать задачу

Автор: Earnest 3.4.2007, 09:16
Посмотри ссылки внизу страницы. Я уж не говорю про гугл.
И причем тут C++?

Автор: kantata 3.4.2007, 13:41
Формулировка задачи:
Имеется три палочки, на первую одето n разных колец пирамидкой, самое большое внизу, самое маленькое - вверху. Найти последовательность перекладывания колец, которая переместит пирамиду на вторую палочку. Перекладывать можно только по одному кольцу и класть либо на большее кольцо, либо на пустую палочку. классический пример рекурсивного алгоритма. Код:
Код

void tower(int n,int s1,int s2,int s3){
if(n==1)cout<<s1<<"=>"<<s2<<endl;
else{
       tower(n-1,s1,s3,s2);
       tower(1,s1,s2,s3);
       tower(n-1,s3,s2,s1);
}
}
 
Функция реализует перекладывание n колец с паочки s1на s2 и протоколирует все действия на экране.

Автор: yaotzin 28.5.2007, 01:44
а для 5ти столбов ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)