
20.03.2010, 20:07
|
|
Участник форума
Регистрация: 30.09.2009
Сообщений: 148
Провел на форуме: 11581319
Репутация:
241
|
|
Задача Multik
Заяц из известного мультфильма убегает от Волка по лестнице длиной N ступенек. Для того, чтобы убежать, Зайцу нужно спрятаться за дверью, которые находятся на последней ступеньке. Волк не может схватить зайца, если они одновременно не находятся на 1 ступеньке, или если Волк не опережает Зайца. Заяц за 1 шаг может подняться на 1 ступеньку, а Волк - на 2. В начале бега Волк находится на 0-й строчке, а Заяц на К-й (К> 0) ступеньке. Сможет Волк поймать Зайца? Если Волк и Заяц последним шагом становятся одновременно на последнюю ступеньку, то Волк схватит Зайца. Волк и Заяц предпринимают шаги одновременно (синхронно).
Технические условия: Программа Мultik читает с клавиатуры числа N и K через пробел. Программа выводит на экран 1, если Волк полакомился Зайцем или 0, если остался голодным. Все расчеты не выходят за пределы типа иnteger Turbo Pascal
Примеры
Введение: 10 7
Вывод: 0
Введение: 10 5
Вывод: 1
Код:
program Multik;
var N,K,zaec,volk,d,i:integer;
label 1;
BEGIN
read(N,K);
d:=0;
zaec:=0;
volk:=0;
repeat
zaec:=k;
k:=k+1;
volk:=volk+2;
d:=d+1;
if zaec=volk then
begin
i:=1;
d:=n;
goto 1;
end
else
begin
i:=0;
d:=n;
goto 1;
end;
if volk > zaec then
begin
i:=0;
d:=n;
goto 1;
end;
until d=n;
if d=n then
i:=0;
1:write(i);
END.
что неправильно? 
goto дописал из незнания что делать, если можно то без goto код.
|
|
|