Шахматная ладья ходит по горизонтали или вертикали. даны две различные клетки шахматной доски, определите, может ли ладья попасть с первой клетки на вторую одним ходом. программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. программа должна вывести yes, если из первой клетки ходом ладьи можно попасть во вторую или no в противном случае.

Поляков Евгений Александрович

Учитель информатики высшей категории

Проверено учителем

Для решения этой задачи необходимо понимать принцип движения шахматной ладьи: она может переместиться на любую клетку, которая находится либо в том же столбце, либо в той же строке, что и исходная. Логика решения Пусть первая клетка имеет координаты (x1,y1)open paren x sub 1 comma y sub 1 close paren, а вторая — (x2,y2)open paren x sub 2 comma y sub 2 close paren.

  • Одинаковый столбец: это условие выполняется, если x1=x2x sub 1 equals x sub 2. Одинаковая строка: это условие выполняется, если y1=y2y sub 1 equals y sub 2.

Если хотя бы одно из этих условий истинно, ладья может совершить ход. Поскольку в условии сказано, что клетки различные, нам не нужно дополнительно проверять, не совпадают ли координаты полностью. Примеры входных и выходных данных

Входные данные (x1, y1, x2, y2) РезультатПояснение
1 1 1 8YESТот же столбец (1)
1 1 8 1YESТа же строка (1)
1 1 2 2NOРазные строки и разные столбцы

Реализация на языке Python Ниже представлен лаконичный код для решения этой задачи: python

# Считываем четыре целых числаx1 = int(input()) y1 = int(input()) x2 = int(input()) y2 = int(input()) # Проверяем условие: совпадает ли номер столбца ИЛИ номер строкиif x1 == x2 or y1 == y2: print("YES") else: print("NO") 
Use code with caution.Математическое описание условия С точки зрения математики, ладья может переместиться из (x1,y1)open paren x sub 1 comma y sub 1 close paren в (x2,y2)open paren x sub 2 comma y sub 2 close paren тогда и только тогда, когда выполняется логическое выражение: (x1=x2)(y1=y2)open paren x sub 1 equals x sub 2 close paren logical or open paren y sub 1 equals y sub 2 close parenГде символ logical or обозначает логическое "ИЛИ". Хотите, я помогу вам составить аналогичный алгоритм для другой шахматной фигуры, например, для слона или ферзя?

Форма ответа

Ваш аватар