Страница: 1 |
Господа программисты, помогите решить задачу!
eto na C++, esli ne pojmesh, pishi, perevedu(na VB): int main() Страница: 1 |
Вопрос: Ханойские башни
Добавлено: 25.02.04 02:53
Автор вопроса: Logot | ICQ: 305396405
Я пишу на VB.Net и VB.6.
Я начинающий программист и эти Ханойские башни пока не поддаются, поэтому обращаюсь к более опытным программистам. Задача решается с помощью рекурсии. Имеется 3 колышка, на первый колышек нанизаны, допустим 5 дисков,и нанизаны они так, что из размеры последовательно уменьшаются к вершине. Нужно переместить все диски с первого колышка на второй колышек при условии, что каждый раз берётся только по одному диску и больший диск никогда не должен находиться над меньшим диском. Временно диски можно размещать на третьем колышке.
Если это возможно, то решить задачу без использования массивов.
Ответы
Всего ответов: 1
Номер ответа: 1
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #1
Добавлено: 25.02.04 03:42
void hanoi (int start_tower, int end_tower, int spare_tower, int n)
{ if (n > 1)
hanoi(start_tower, spare_tower, end_tower, n-1);
cout << "Move disc from " << start_tower << " to " << end_tower << endl;
if (n > 1)
hanoi(spare_tower, end_tower, start_tower, n-1);
};
{
hanoi(1,2,3,1);
return 0;
};