Условие
В школе решили набрать три новых математических класса. Так как занятия по математике у них проходят в одно и то же время, было решено выделить кабинет для каждого класса и купить в них новые парты. За каждой партой может сидеть не больше двух учеников. Известно количество учащихся в каждом из трёх классов.
Сколько всего нужно закупить парт чтобы их хватило на всех учеников? Программа получает на вход три натуральных числа: количество учащихся в каждом из трех классов.
Решение задачи от разработчиков на Python:
Copy to Clipboard
Смотреть видео — Задача «Парты» решение на Python
Делитесь с друзьями ссылкой на ответ и задавайте вопросы в комментариях! 👇
это рил легко
Crowley, зачем вводишь в заблуждение? Твое решение неверное, так нельзя считать в этой задаче. Поясню.
Если брать и тупо суммировать 3 переменные (кол-во учеников в каждом классе) и дальше все скопом делить на 2 и добавлять остаток от деления на 2 — в этой задаче будет ошибкой.
Потому что класса у нас 3, и если в любом из них нечетное кол-во учеников, то «остаток» в виде нечетного ученика не пойдет сидеть за парту в другой класс. Ему нужна парта в этом же классе. Поэтому нужно только последовательно по каждому классу: — делить на два без остатка — добавлять остаток от деления на два. И потом суммировать 3 результата по каждому классу.
Иначе получится, что если в первом классе 23 ученика, во втором 21, а в третьем 20, то, суммируя сначала все скопом: (23+21+20) \\2 = 64\\2 = 32. 64 делится на 2 без остатка, получается 32 парты всего нужно. А если последовательно: (23\\2) + 23%2 = 11+1 = 12; (21\\2) + 21%2 = 10+1 = 11; (20\\2)+20%2 = 10; Итог — 12+11+10 = 33 парты. Появляется + 1 парта, которая «теряется» если суммировать сначала все переменные. А если в каждом из 3-х классов будет нечетное кол-во учеников, тогда «потеряются» уже 2 парты. Код:
print(((a//2)+a%2)+((b//2)+b%2)+((c//2)+c%2))