Миша учится играть в шахматы. Самая любимая фигура Миши —
это слон, потому что слон может атаковать все клетки, которые находятся с ним на одной диагонали. Миша очень любознательный мальчик, поэтому он задумался: сколько клеток будет атаковать слон, если поставить его на клетку с номером строки R
и номером столбца C
на шахматной доске размером N×N
?
def bishop_attacks(N, R, C):
main_diagonal = min(N - R, N - C) + min(R - 1, C - 1)
side_diagonal = min(N - R, C - 1) + min(R - 1, N - C)
total_attacks = main_diagonal + side_diagonal
return total_attacks
N = 8
R = 4
C = 4
print(bishop_attacks(N, R, C))
В этом примере функция `bishop_attacks` принимает три параметра: N - размер шахматной доски, R - номер строки, C - номер столбца. Функция использует вышеописанную формулу для вычисления числа клеток, атакуемых слоном и возвращает это число.
В основной части кода, мы просто вызываем функцию с заданными значениями и выводим результат на экран. В этом примере слон на клетке (4,4) атакует 13 клеток.
На языке C++ код будет выглядеть похожим образом:
#include <iostream>
using namespace std;
int bishop_attacks(int N, int R, int C) {
int main_diagonal = min(N - R, N - C) + min(R - 1, C - 1);
int side_diagonal = min(N - R, C - 1) + min(R - 1, N - C);
int total_attacks = main_diagonal + side_diagonal;
return total_attacks;
}
int main() {
int N = 8;
int R = 4;
int C = 4;
cout << bishop_attacks(N, R, C) << endl;
return 0;
}
Таким образом, используя простую формулу основанную на правилах перемещения слона на шахматной доске, мы можем рассчитать количество клеток, которые атакует слон, если он стоит на заданной клетке.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет