Hrachuk
11.11.2022 23:55

Задача The king and the knight Напомним прежде всего некоторые шахматные правила, которые понадобятся для решения задачи.

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

Конь (knight) может пойти на любое поле доски, если оно располагается на другом конце русской буквы Г (то есть вначале конь перемещается на два поля по горизонтали или по вертикали, а затем на одну клетку перпендикулярно первоначальному направлению). Выходить за границы доски также нельзя.

Будем говорить, что фигура A находится под боем фигуры B, если фигура B за один ход может переместиться в клетку, в которой находится фигура A.

А теперь — задача… В различных клетках шахматной доски находятся две фигуры: король и конь. Вам требуется выяснить истинность или ложность каждого из четырёх утверждений:

король находится под боем коня;
король не находится под боем коня, но будет находиться под боем после одного допустимого хода коня;
конь находится под боем короля;
конь не находится под боем короля, но будет находиться под боем после одного допустимого хода короля
Сможете решить эту задачу?
Формат входных данных
В первой строке файла записывается положение короля в стандартной шахматной нотации (согласно этой нотации, строки обозначаются снизу вверх латинскими буквами от a до h, а столбцы слева направо цифрами от 1 до 8, так что нижняя левая клетка обозначается как a1, а верхняя правая — h8). Во второй строке аналогичным образом записывается положение коня.
Формат выходных данных
Выведите строку из четырёх символов, каждый из которых принимает значение «Y» или «N» в зависимости от того, истинно или ложно очередное утверждение.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
sofyaamosovap0cc8l
17.01.2021 09:08
#include <iostream>
#include <ctime>
using namespace std;
int main ()
{
setlocale (0,"russian");
srand (time(NULL));
short A[3],B[3];
int a=0,b=0;
cout << "Случайное заполнение массивов: " << endl;
cout << "1-ый: ";
for (short i=0;i<3;i++)
{
A[i]=rand()%20-9;
cout << A[i] << ' ';
a+=A[i];
}
cout << endl << "2-ой: ";
for (short i=0;i<3;i++)
{
B[i]=rand()%20-9;
cout << B[i] << ' ';
b+=B[i];
}
cout << endl << "Произведение суммы данных массивов: " << a*b;
system ("PAUSE>>VOID");
return 0;
}
0,0(0 оценок)
Ответ:
ju1227
22.03.2022 10:37
#include "stdafx.h" 
#include <iostream>
 #include <math.h>
#include<stdio.h>
using namespace std;
 #define PI 3.14159265
int main ()
{
double a;
cout<<"Input a: ";
cin>>a;
cout<<endl;
 if (  (a*cos((78.0)*PI / 180.0 ))<((0.2)*cos ( (81.0) * PI / 180.0 ))  )
{
cout<<"a*cos(78) < 0,2cos(81)"; 
}else
 {
if ((a*cos ( (78.0) * PI / 180.0 ))==((0.2)*cos ( (81.0) * PI / 180.0 )))
{
cout<<"a*cos(78) = 0,2cos(81)";
}else
{
cout<<"a*cos(78) > 0,2cos(81)";
}} 
system("PAUSE");
return 0;}
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота