Python

Не могу решать задачи на целочисленную арифметику в питоне.

Я понимаю тему деление с остатком, но не знаю, нужно ли применять это действие в задаче или нет. То есть не понимаю условий задачи. К примеру, возьмем парты.

В некоторой школе решили набрать три новых математических класса и оборудовать кабинеты для них новыми партами. За каждой партой могут сидеть двое учащихся. Известно количество учащихся в каждом из трёх классов. Определите, какое наименьшее число парт, которое нужно приобрести для них.

Программа получает на вход три натуральных числа: количество учащихся в каждом из трёх классов, каждое в отдельной строке. Программа должна вывести ответ на задачу.

В задаче просят определить наименьшее число парт для трех классов. Я не понимаю, что нужно делать. Отнимать их, делить или брать остаток. Зачем брать остаток? Мне сложно представить картину у себя в голове и разложить алгоритм по полочкам с такими запутанными задачами.
До этого я начала учить язык программирования с типов данных и преобразованием типов. На этой теме остановилась. Может стоит пойти дальше и потом вернуться к теме?
я бы сделал так
за партой сидят двое ученика
- берем количество учеников в первом классе и делим его на 2 и округляем до целых
если учеников в классе четное количество (например 20) то получится целое число (20/2 = 10) при округлении которого оно и останется
если учеников нечетное (21 например) то при делении на 2 будет нецелое число (21/2 = 10.5) при округлении которого будет нудное количетсво парт
import math
a = int(input())
b = int(input())
c = int(input())
print (math.ceil(a/2)+math.ceil(b/2)+math.ceil(c/2))
a, b, c это все количесвто учеников в трех классах
но целочисленное деление и деление с остатком тоже можно применить
или после импутов так
if a%2!=0:
____a+=1
и так с каждым классом (грубо говоря, если нечетное количесвто, то мы доводим количество учеников до четного и уже потом будем делить на два и складывать)
print ((a/2)+(b/2)+(c/2))
$$$$$ Oma $$$$$$ I Love Sport
$$$$$ Oma $$$$$$ I Love Sport
7 148
Лучший ответ
Юр@н ***** print(sum([(int(input())+1)//2 for _ in range(3)]))

Эффект тот же... :)
Зато у тебя присутствует куча логики, что большой плюс для начинающего программиста...
Количество парт для 3-х классов:

print(sum([(int(input()) + 1) // 2 for _ in range(3)]))
Юр@н *****
Юр@н *****
58 546
Нужен остаток от деления, чтобы проверить, четное ли число учеников в классе (n%2==0) и если да, то к количиству добавить 1 или округлить в большую сторону
Дмитрий Динеев
Дмитрий Динеев
83 844
Если в классе четное число учеников, то парт надо - это число разделить нацело на два, так как за каждой партой сидит 2 ученика.

Если в классе нечетное число учеников, то надо нацело разделить на два и прибавить единицу (то есть еще одну парту, за которой будет сидеть один ученик.

То есть можно так
____________
if uch%2 == 0:
~~part = uch // 2
else:
~~part = uch // 2 + 1
____________

Или без иф-элс
____________
part = uch//2 + uch%2
____________

Но это можно сделать проще, добавив единицу к ученикам сразу и разделить нацело на два
____________
part = (uch + 1) // 2
____________
При этом если число учеников четное, то прибавление единицы не повлияет, а если нечетное, то сложившись с нечетной единицей и и разделившись на два, прибавит требуемую парту для нечетного ученика.