(см. объяснение)
Объяснение:
program task;
var i: integer;
const N=5;
procedure writeOut(i: integer);
begin
if(i<N) then write(', ')
else writeln('.');
end;
begin
if(N<1) then begin writeln('N>0 и целое!'); exit; end;
writeln('ЦИКЛ FOR:');
for i:= 1 to N
do begin
write(i); writeOut(i);
end;
writeln;
writeln('ЦИКЛ WHILE:');
i:= 1;
while(i<N+1)
do begin
write(i); writeOut(i);
i:= i+1;
end;
writeln;
writeln('ЦИКЛ REPEAT:');
i:= 1;
repeat
write(i); writeOut(i);
i:= i+1;
until i=N+1;
end.
Полные обороты не влияют на положение финиша, так что их можно вычесть из дистанции. Периметр прямоугольника равен P = 2(A + B), так что после выкидывания полных оборотов дистанция будет равна L mod P, где mod - операция взятия остатка. После этого L < P; если L < A, то финиш будет снизу, если A < L < A + B - справа, если A + B < L < 2A + B - сверху, а иначе слева.
Код (python 3):
A = int(input())
B = int(input())
L = int(input())
P = 2 * (A + B)
L = L % P
if L < A:
print("BOTTOM")
elif L < A + B:
print("RIGHT")
elif L < 2 * A + B:
print("TOP")
else:
print("LEFT")
Поделитесь своими знаниями, ответьте на вопрос:
Вчем заключается концепция "открытой архитектуры"?