Решение задачки с 6-ю лягушками, которых нужно поменять местами

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Решение задачки с 6-ю лягушками, которых нужно поменять местами

Решение задачки с 6-ю лягушками, которых нужно поменять местами

gorunov » 24 июн 2008, 09:10

Есть известная задачка про лягушек, которых нужно поменяьт местами [ DEMO]

Была сотавлен алгоритм решения этой задачи, основанный на рекурсии:

program lyag;
const
c: array[1..7] of byte=(1,1,1,0,2,2,2);

var
i: byte;
f: text;


function hod: boolean;
var
i,k: byte;
fl: boolean;
c1: array[1..7] of byte;
begin
hod:=false;
if (c[1]=2)and(c[2]=2)and(c[3]=2)and(c[4]=0)and
(c[5]=1)and (c[6]=1)and (c[7]=1) then begin
hod:=true;
writeln (f);
writeln('OK');
halt
end;
for i:=1 to 7 do c1:=c;
k:=0;
while (k (k=3)and(c[k-2]=1) then begin
c[k-2]:=0;
c[k]:=1;
writeln;
for i:=1 to 7 do write(f,c,' ');
writeln(f);
fl:=hod;
end;
for i:=1 to 7 do c:=c1;
k:=0;
while (k=hod;
end;
for i:=1 to 7 do c:=c1;
writeln(f);
writeln(f, 'otkat')
end;

begin
assign(f,'out.txt');
rewrite(f);
writeln(f);
for i:=1 to 7 do write(f, c,' ');
writeln(f);
hod;
writeln('ERROR');
close(f);
end.

Вернуться к началу