|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Anton Maydell 2:5030/744.179 26 May 2003 14:35:19 To : Sergey Zorin Subject : Ханойская башня -------------------------------------------------------------------------------- 26 May 03 19:38, you wrote to All: SZ> Имеются три колышка А, В, С. Hа колышек А нанизано n дисков радиуса SZ> 1,2,...,n, таким образом, что диск радиуса i является i-м сверху. SZ> Задача состоит в том, чтобы переместить все диски на колышек С таким SZ> образом, чтобы диск радиуса i был опять i-м сверху. За один раз SZ> разрешается перемещать только один диск с любого колышка на любой SZ> другой. Должно выполняться условие, что на каждом колышке ни в какой SZ> момент никакой диск не может находиться выше диска с меньшим номером. Привожу рекурсивное решение, взятое с http://acm.timus.ru/problem.asp?id=1054 procedure Hanoi(N:integer; From, To_, Temp : integer); Begin if N>0 then begin Hanoi(N-1, From, Temp, To_); writeln (N, From, To_); Hanoi(N-1, Temp, To_, From) end End; Для перемещения и дисков достаточно вызвать Hanoi(n,1,2,3); Anton --- GoldED/W32 3.0.1-asa8 * Origin: (2:5030/744.179) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/190533ed2269c.html, оценка из 5, голосов 10
|