На шахматной доске в клеточке (x1, y1) находится шахматный ферзь. Определите,
На шахматной доске в клеточке (x1, y1) находится шахматный ферзь. Определите, бьет ли он клеточку (x2, y2). На вход программке даются четыре целых числа x1, y1, x2, y2 (1x1,y1,x2,y28) координаты 2-ух полей на шахматной дощечке размера 88. нужно вывести 1, если ферзь лупит клетку, либо 0, если нет.С++
1 ответ
Штрикман
Машенька
Ферзь, стоящий в точке , может колотить фигуры, у которых:
1)
2)
3) координаты находятся по диагонали от ферзя.
Имеем не самую лучшую и чистую, но рабочую программу:
include lt;cstdiogt;
int main()
int x1, x2, y1, y2, x_d1, y_d1, x_d2, y_d2;
printf("x1=");
scanf("%d", amp;x1);
printf("y1=");
scanf("%d", amp;y1);
printf("x2=");
scanf("%d", amp;x2);
printf("y2=");
scanf("%d", amp;y2);
/* Проверка на линейные совпадения */
if ( (x1 == x2) or (y1 == y2) )
printf("1");
return 1;
/* Поиск скрещения с диагональю 1 */
x_d1 = x1;
y_d1 = y1;
while ( (x_d1 gt; 1) and (y_d1 gt; 1) )
x_d1--;
y_d1--;
if ( (x2 == x_d1) and (y2 == y_d1) )
printf("1");
return 1;
while ( (x_d1 lt; 8) and (y_d1 lt; 8) )
x_d1++;
y_d1++;
if ( (x2 == x_d1) and (y2 == y_d1) )
printf("1");
return 1;
/* Поиск скрещения с диагональю 2 */
x_d2 = x1;
y_d2 = y1;
while ( (x_d2 lt; 8) and (y_d1 gt; 1) )
x_d1++;
y_d1--;
if ( (x2 == x_d2) and (y2 == y_d2) )
printf("1");
return 1;
while ( (x_d1 gt; 1) and (y_d1 lt; 8) )
x_d1--;
y_d1++;
if ( (x2 == x_d2) and (y2 == y_d2) )
printf("1");
return 1;
printf("0");
return 0;
1)
2)
3) координаты находятся по диагонали от ферзя.
Имеем не самую лучшую и чистую, но рабочую программу:
include lt;cstdiogt;
int main()
int x1, x2, y1, y2, x_d1, y_d1, x_d2, y_d2;
printf("x1=");
scanf("%d", amp;x1);
printf("y1=");
scanf("%d", amp;y1);
printf("x2=");
scanf("%d", amp;x2);
printf("y2=");
scanf("%d", amp;y2);
/* Проверка на линейные совпадения */
if ( (x1 == x2) or (y1 == y2) )
printf("1");
return 1;
/* Поиск скрещения с диагональю 1 */
x_d1 = x1;
y_d1 = y1;
while ( (x_d1 gt; 1) and (y_d1 gt; 1) )
x_d1--;
y_d1--;
if ( (x2 == x_d1) and (y2 == y_d1) )
printf("1");
return 1;
while ( (x_d1 lt; 8) and (y_d1 lt; 8) )
x_d1++;
y_d1++;
if ( (x2 == x_d1) and (y2 == y_d1) )
printf("1");
return 1;
/* Поиск скрещения с диагональю 2 */
x_d2 = x1;
y_d2 = y1;
while ( (x_d2 lt; 8) and (y_d1 gt; 1) )
x_d1++;
y_d1--;
if ( (x2 == x_d2) and (y2 == y_d2) )
printf("1");
return 1;
while ( (x_d1 gt; 1) and (y_d1 lt; 8) )
x_d1--;
y_d1++;
if ( (x2 == x_d2) and (y2 == y_d2) )
printf("1");
return 1;
printf("0");
return 0;
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
10) Килограмм конфет дороже килограмма печенья на 52 р. За 8
Математика.
Во сколько раз число атомов кислорода в земной коре больше числа
Химия.
Составить монолог от имени дневника двоечника 7-10 предложений
Русский язык.
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо
Разные вопросы.
Арабы входят в __________________ групп народов. Местом расселения арабов с незапамятных
Разные вопросы.
Грузовой автомобиль марки краз за одну поездку может доставить 7.500 кирпичей
Математика.
Определить предложения какие они по цели высказывания и по интонации
Русский язык.
"Три толстяка" Называли эту площадь Площадью Звезды последующей причине.
Русский язык.
на одной грядке коротышки посадили 3 ряда морковок по 8 штук
Разные вопросы.
Облако тегов