Полные обороты не влияют на положение финиша, так что их можно вычесть из дистанции. Периметр прямоугольника равен 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")
Объяснение:
Объясняю почему:
Перед тобой цикл for. Строчка «for i in range(2,6)» означает, что цикл будет начинаться со второй итерации (шаг) до 6 (но в этом цикле такая фишка, что конечное число не учитывается, то есть будет 6-1 (5)). Значит с шагом 5 цикл оборвётся и 6 выполняться не будет. Ты можешь обнаружить это в таблице. Последнее твоё действие заканчивается на строчке под номером 5. А дальше все очень просто!
Допустим, в пустые клеточки (А1, В1) мы ввели какие-то числа. Например, А = 2, В = 3. Следующим шагом программы будет присвоить нашим переменным, которые мы задали, новые значения, которые считаются по формуле данной в строке 2:
2*A1+B1 (это для переменной А) и B1+1 (это для переменной B).
Значит теперь у нас:
A = 2*2(то число которое мы задали)+3 = 7
B = 3(то число которое мы задали)+1 = 4
А дальше программа просто повторяет все то же самое, только теперь с новыми значениями, у нас они стали: A = 7, B = 4. Надеюсь все понятно :) И именно ответ под номером один нам подходит.
Если ещё надо решить вторую задачу, то сфоткай полностью ответы.
x:=z; - переменной x присваивается значения переменной z (символ 'z')
z:='x'; - переменной z присваивается символ 'x'
у:=z; - переменной y присваивается значение переменной z (символ 'x');
writeln(x, y) - выводятся значения переменный x и y, значит будет выведено:
zx