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

Ответы 6

  • Видимо, что-то надо в знаниях подправить... может быть, тогда не все будет так отвратительно. Попробуйте на занятиях ходить, например... и больше внимания предмету уделять.
    • Автор:

      annj5az
    • 6 лет назад
    • 0
  • Подскажите, а что значит div?
  • div - это в языке Pascal операция деления нацело с отбрасыванием остатка
    • Автор:

      tucker13
    • 6 лет назад
    • 0
  • А m mod 2, соответственно, остаток, да?
    • Автор:

      ariesspfh
    • 6 лет назад
    • 0
  • Да
  • Рассмотрим случай, когда число клеток по вертикали 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.NETvar  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
    • Автор:

      tinker
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years