
Вопрос задан 21.06.2019 в 08:41.
Предмет Информатика.
Спрашивает Гаевец Сергей.
Нужно написать программу Шахматная доска состоит из n х m клеток, покрашенных в черный и белый цвет
в«шахматном» порядке. При этом клетка в левом нижнем углу доски покрашена в черный цвет определите, сколько всего на доске черных клето. Программа получает на вход два числа n и m, залисанных в отдельных строю Bсе натуральные, не превосходящие 30 000 числа Программа должна вывести одно целое число количество черных клеток на доске.

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

Отвечает Батенькова Даша.
Рассмотрим случай, когда число клеток по вертикали n четное. В этом случае каждая пара горизонталей доски содержит ровно m клеток (m - число клеток доски по горизонтали). Тогда общее число черных клеток равно m*n/2.
При нечетном n к рассмотренным горизонтальным строкам добавляется еще одна - нечетная, конфигурация которой совпадает с первой (нечетной) горизонталью.
Если клетка в левом нижнем углу первой горизонтали черная, то количество черных клеток в ней можно определить как сумму результата целочисленного деления количества клеток по горизонтали на два и остатка от этого деления. В результате приходим к следующей формуле:

Ниже представлен текст программы на языке 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
При нечетном n к рассмотренным горизонтальным строкам добавляется еще одна - нечетная, конфигурация которой совпадает с первой (нечетной) горизонталью.
Если клетка в левом нижнем углу первой горизонтали черная, то количество черных клеток в ней можно определить как сумму результата целочисленного деления количества клеток по горизонтали на два и остатка от этого деления. В результате приходим к следующей формуле:
Ниже представлен текст программы на языке 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


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

Информатика 566

Информатика 25

Информатика 22

Информатика 27

Информатика 34

Информатика 58

Информатика 63

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