Задача 17: Зеркальное отражение

Напишите определение функции findReceptor(p: int, q: int) -> int, которая принимает два целых числа p и q:

  • p — длина стены квадратной комнаты.
  • q — расстояние от юго-западного угла до точки первого попадания лазера на восточную стену.

Комната представляет собой квадрат с зеркалами на каждой из четырех стен. В юго-западном углу находится источник лазера. Остальные углы пронумерованы: 0 (северо-западный угол), 1 (северо-восточный угол), 2 (юго-восточный угол). Лазер начинает движение из юго-западного угла, и его первый контакт с рецептором необходимо определить.

Функция должна вернуть номер рецептора (0, 1 или 2), с которым лазер встретится первым. Гарантируется, что лазер в конечном итоге попадет на один из рецепторов.


Пример 1:

Входные данные:
p = 2, q = 1
Выходные данные:
2
Пояснение: Лазер попадает в рецептор 2 при первом отражении от левой стены.

Пример 2:

Входные данные:
p = 3, q = 1
Выходные данные:
1
Пояснение: Лазер попадает в рецептор 1 при первом отражении от верхней стены.

0

Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии