
СРОЧНО! ДАЮ 40 БАЛЛОВ! Шахматная доска состоит из n×m клеток, покрашенных в чёрный и белый цвет в
шахматном порядке. При этом клетка в левом нижнем углу доски покрашена в чёрный цвет. Определите, сколько всего на доске чёрных клеток.Программа получает на вход натуральные числа n и m. Программа должна вывести ответ на задачу.ПримерыВвод 134Вывод6Язык Python

Ответы на вопрос

Объяснение:
Рассмотрим случай, когда число клеток по вертикали n четное. В этом случае каждая пара горизонталей доски содержит ровно m клеток (m - число клеток доски по горизонтали). Тогда общее число черных клеток равно m*n/2.
При нечетном n к рассмотренным горизонтальным строкам добавляется еще одна - нечетная, конфигурация которой совпадает с первой (нечетной) горизонталью.
Если клетка в левом нижнем углу первой горизонтали черная, то количество черных клеток в ней можно определить как сумму результата целочисленного деления количества клеток по горизонтали на два и остатка от этого деления. В результате приходим к следующей формуле:
\begin{lgathered}k=\begin {cases} \frac{mn}{2}, \ n \, mod \, 2=0 \\ \frac{m(n-1)}{2}+ (m \, div \, 2)+(m \, mod \, 2), \ n \, mod \, 2=1 \end {cases}\end{lgathered}
k={
2
mn
, nmod2=0
2
m(n−1)
+(mdiv2)+(mmod2), nmod2=1
Ниже представлен текст программы на языке Pascal.ABC.NET
var
m, n: integer;
begin
Write('Введите количество горизонталей на доске: ');
Readln(n);
Write('Введите количество вертикалей на доске: ');
Readln(m);
if (n mod 2) = 0 then Writeln('Черных клеток на доске- ', m * n / 2)
else Writeln('Черных клеток на доске- ', m * (n-1) / 2 + (m div 2) + (m mod 2))
end.
Тестовое решение:
Введите количество горизонталей на доске: 8
Введите количество вертикалей на доске: 7
Черных клеток на доске- 28



Для решения этой задачи можно воспользоваться формулой арифметической прогрессии для суммы чётных чисел. Заметим, что каждая вторая клетка на шахматной доске является чёрной. Таким образом, если мы посчитаем общее количество клеток на доске и поделим его на 2, мы получим количество чёрных клеток.
Вот соответствующий код на языке Python:
pythonn = int(input("Введите значение n: "))
m = int(input("Введите значение m: "))
total_cells = n * m
black_cells = total_cells // 2
print("Количество чёрных клеток на доске:", black_cells)
Теперь, если вы введёте значения n = 13
и m = 4
, программа выведет:
Количество чёрных клеток на доске: 26
Примечание: Чтобы код работал корректно, убедитесь, что значения n
и m
больше 0.


Похожие вопросы
Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili