Предмет: Информатика, автор: mixa21

На шахматной доске в клетке (x1, y1) находится шахматный ферзь. Определите, бьет ли он клетку (x2, y2). На вход программе даются четыре целых числа x1, y1, x2, y2 (1≤x1,y1,x2,y2≤8) — координаты двух полей на шахматной доске размера 8×8. требуется вывести 1, если ферзь бьет клетку, или 0, если нет.С++

Ответы

Автор ответа: BrightOne
0
Ферзь, стоящий в точке (x_1;y_1), может бить фигуры, у которых:
    1) x = x_1
    2) y = y_1
    3) координаты находятся по диагонали от ферзя.

Имеем не самую лучшую и чистую, но рабочую программку:

#include <cstdio>

int main() {
  int x1, x2, y1, y2, x_d1, y_d1, x_d2, y_d2;
  printf("x1=");
  scanf("%d", &x1);
  printf("y1=");
  scanf("%d", &y1);
  printf("x2=");
  scanf("%d", &x2);
  printf("y2=");
  scanf("%d", &y2);

  /* Проверка на линейные совпадения */
  if ( (x1 == x2) or (y1 == y2) ) {
    printf("1");
    return 1;
  }

  /* Поиск пересечения с диагональю 1 */
  x_d1 = x1;
  y_d1 = y1;
  while ( (x_d1 > 1) and (y_d1 > 1) ) {
    x_d1--;
    y_d1--;
    if ( (x2 == x_d1) and (y2 == y_d1) ) {
      printf("1");
      return 1;
    }
  }
  while ( (x_d1 < 8) and (y_d1 < 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 < 8) and (y_d1 > 1) ) {
    x_d1++;
    y_d1--;
    if ( (x2 == x_d2) and (y2 == y_d2) ) {
      printf("1");
      return 1;
    }
  }
  while ( (x_d1 > 1) and (y_d1 < 8) ) {
    x_d1--;
    y_d1++;
    if ( (x2 == x_d2) and (y2 == y_d2) ) {
      printf("1");
      return 1;
    }
  }
 
  printf("0");
  return 0;
}

Интересные вопросы
Предмет: Литература, автор: nike1person
о чем говорится в этом стихотворении (стихотворений) листок и листок 1 Михаил Лермонтов
вот он Листок

Дубовый листок оторвался от ветки родимой
И в степь укатился, жестокою бурей гонимый;
Засох и увял он от холода, зноя и горя
И вот, наконец, докатился до Черного моря.

У Черного моря чинара стоит молодая;
С ней шепчется ветер, зеленые ветви лаская;
На ветвях зеленых качаются райские птицы;
Поют они песни про славу морской царь-девицы.

И странник прижался у корня чинары высокой;
Приюта на время он молит с тоскою глубокой,
И так говорит он: "Я бедный листочек дубовый,
До срока созрел я и вырос в отчизне суровой.

Один и без цели по свету ношуся давно я,
Засох я без тени, увял я без сна и покоя.
Прими же пришельца меж листьев своих изумрудных,
Немало я знаю рассказов мудреных и чудных".

"На что мне тебя? - отвечает младая чинара,-
Ты пылен и желт - и сынам моим свежим не пара.
Ты много видал - да к чему мне твои небылицы?
Мой слух утомили давно уж и райские птицы.
Иди себе дальше; о странник! тебя я не знаю!
Я солнцем любима, цвету для него и блистаю;
По небу я ветви раскинула здесь на просторе,
И корни мои умывает холодное море".
другой В. А. Жуковский вот сам стих
Листок
От дружной ветки отлученный,
Скажи, листок уединенный,
Куда летишь?.. "Не знаю сам;
Гроза разбила дуб родимый;
С тех пор по долам, по горам
По воле случая носимый,
Стремлюсь, куда велит мне рок,
Куда на свете все стремится,
Куда и лист лавровый мчится,
И легкий розовый листок."
Прошу написать подробно о чем эти стихотворения желательно сначало про 1 стихотворение рассказать потом про другое а потом уже чем они связаны между собой. спасибо!