
Flourdix
5 год назад
Даны координаты (целые от 1 до 8) двух полей шахматной доски.Определить, может ли конь за один ход перейти с одного из этих полей надругое.
ОТВЕТЫ

Schreiber Klara
Oct 24, 2020
Так как язык не указан, пишу на C++
\\\\\\\\\\\\\\\\
#include <iostream>
using namespace std;
void getN(int &n) {
bool flag;
do {
flag = false;
cin >> n;
if (n > 8 || n < 1) {
cout << "Неправильное число! Повторите ввод: ";
flag = true;
}
}
while (flag);
}
bool canIGo(int x1, int y1, int x2, int y2) {
int dx, dy;
dx = abs(x1 - x2);
dy = abs(y1 - y2);
return (dx == 2 && dy == 1)||(dx == 1 && dy == 2);
}
int main() {
setlocale(LC_ALL, "Russian");
int x1, y1, x2, y2;
cout << "Координаты первой точки через пробел: ";
getN(x1); getN(y1);
cout << "Координаты второй точки через пробел: ";
getN(x2); getN(y2);
cout << ((canIGo(x1, y1, x2, y2)) ? "Можно!" : "Нельзя!") << endl;
system("pause");
return 0;
}
\\\\\\\\\\\\\\\\
#include <iostream>
using namespace std;
void getN(int &n) {
bool flag;
do {
flag = false;
cin >> n;
if (n > 8 || n < 1) {
cout << "Неправильное число! Повторите ввод: ";
flag = true;
}
}
while (flag);
}
bool canIGo(int x1, int y1, int x2, int y2) {
int dx, dy;
dx = abs(x1 - x2);
dy = abs(y1 - y2);
return (dx == 2 && dy == 1)||(dx == 1 && dy == 2);
}
int main() {
setlocale(LC_ALL, "Russian");
int x1, y1, x2, y2;
cout << "Координаты первой точки через пробел: ";
getN(x1); getN(y1);
cout << "Координаты второй точки через пробел: ";
getN(x2); getN(y2);
cout << ((canIGo(x1, y1, x2, y2)) ? "Можно!" : "Нельзя!") << endl;
system("pause");
return 0;
}
443
Смежные вопросы: