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

Нужно написать программу шахматная доска состоит из n х m клеток, покрашенных в черный и белый цвет в«шахматном» порядке. при этом клетка в левом нижнем углу доски покрашена в черный цвет определите, сколько всего на доске черных клето. программа получает на вход два числа n и m, залисанных в отдельных строю bсе натуральные, не превосходящие 30 000 числа программа должна вывести одно целое число количество черных клеток на доске.

Показать ответ
Ответ:
sanymoskva
sanymoskva
09.07.2020 21:01
Рассмотрим случай, когда число клеток по вертикали n четное. В этом случае каждая пара горизонталей доски содержит ровно m клеток (m - число клеток доски по горизонтали). Тогда общее число черных клеток равно m*n/2.
При нечетном n к рассмотренным горизонтальным строкам добавляется еще одна - нечетная, конфигурация которой совпадает с первой (нечетной) горизонталью.
Если клетка в левом нижнем углу первой горизонтали черная, то количество черных клеток в ней можно определить как сумму результата целочисленного деления количества клеток по горизонтали на два и остатка от этого деления. В результате приходим к следующей формуле:
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}

Ниже представлен текст программы на языке 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
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота