
На c++ пожалуйста Ход короля и шахматная нотация Шахматный король ходит по горизонтали, вертикали
и диагонали, но только на одну клетку. Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом. Входные данные Входной файл состоит из двух строк — координат первой и второй клетки в шахматной нотации. Как известно, в шахматной нотации горизонтальные строки обозначаются цифрами от 1 до 8, считая от расположения белых фигур, стоящих внизу доски, а вертикальные столбцы — буквами латинского алфавита: a,b,c,d,e,f,g,h. Выходные данные Программа должна вывести YES, если из первой клетки ходом короля можно попасть во вторую, или NO в противном случае. Примеры Ввод Вывод a1 a2 YES a1 c2 NO

Ответы на вопрос

Ответ:
#include <iostream>
using namespace std;
int main(){
char c1, s1, c2, s2;
cin >> c1;
cin >> s1;
cin >> c2;
cin >> s2;
bool colComp (c1 - c2 <= 1 && c1 - c2 >= -1), strComp (s1 - s2 <= 1 && s1 - s2 >= -1);
if (c1 == c2 && s1 == s2){
cout << "NO";
}
else if (colComp && strComp){
if (c1 <= 0 || s1 <= 0 || c2 <= 0 || s2 <= 0){
cout << "NO";
}
else {cout << "YES";}
}
else {cout << "NO";}
return 0;
}
Объяснение:



Для решения этой задачи нужно определить, можно ли королю сделать ход с одной клетки на другую в соответствии с шахматными правилами. Король может двигаться на одну клетку в любом направлении: горизонтально, вертикально или по диагонали.
Давайте разберем ваши примеры:
1. `a1` -> `a2`: Король начинает с клетки `a1` и хочет попасть на клетку `a2`. Он может сделать это, двигаясь вертикально вверх на одну клетку. Поэтому ответ - "YES".
2. `a1` -> `c2`: Король начинает с клетки `a1` и хочет попасть на клетку `c2`. Он не может сделать это одним ходом, так как это требует движения на две клетки горизонтально и одну клетку вертикально. Поэтому ответ - "NO".
Итак, ответ на ваш запрос в соответствии с заданными правилами - "YES" или "NO", в зависимости от того, может ли король сделать ход с одной клетки на другую на шахматной доске.


Похожие вопросы
Топ вопросов за вчера в категории Информатика









Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili