Вопрос задан 30.09.2023 в 12:27. Предмет Информатика. Спрашивает Чубаров Виктор.

РЕШИТЬ ТОЛЬКО НА С++ Ход короля и шахматная нотация Шахматный король ходит по горизонтали,

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Косарев Валерий.

Ответ:

#include <iostream>

#include <vector>

using namespace std;

int main()

{

   int x1, y1, x2, y2;

   char c1, c2;

   cin >> c1 >> y1;

   cin >> c2 >> y2;

   x1 = c1 - 'a';

   x2 = c2 - 'a';

   if (abs(x1 - x2) <= 1 &&

       abs(y1 - y2) <= 1){

           cout << "YES";

   }else{

   cout << "NO";}

   }

Объяснение:

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи на C++ вы можете использовать следующий код:

cpp
#include <iostream> #include <cmath> int main() { char col1, col2; int row1, row2; // Ввод координат первой клетки std::cin >> col1 >> row1; // Ввод координат второй клетки std::cin >> col2 >> row2; // Вычисляем разницу в горизонтальных и вертикальных координатах int colDiff = std::abs(col1 - col2); int rowDiff = std::abs(row1 - row2); // Проверяем, может ли король попасть из первой клетки во вторую одним ходом if (colDiff <= 1 && rowDiff <= 1) { std::cout << "YES" << std::endl; } else { std::cout << "NO" << std::endl; } return 0; }

Этот код сначала считывает координаты обеих клеток, затем вычисляет разницу в горизонтальных и вертикальных координатах между ними, и, наконец, проверяет, можно ли королю попасть из одной клетки в другую одним ходом (горизонтальная и вертикальная разница должны быть не больше 1). В зависимости от результата, программа выводит "YES" или "NO".

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос