Я понимаю тему деление с остатком, но не знаю, нужно ли применять это действие в задаче или нет. То есть не понимаю условий задачи. К примеру, возьмем парты.
В некоторой школе решили набрать три новых математических класса и оборудовать кабинеты для них новыми партами. За каждой партой могут сидеть двое учащихся. Известно количество учащихся в каждом из трёх классов. Определите, какое наименьшее число парт, которое нужно приобрести для них.
Программа получает на вход три натуральных числа: количество учащихся в каждом из трёх классов, каждое в отдельной строке. Программа должна вывести ответ на задачу.
В задаче просят определить наименьшее число парт для трех классов. Я не понимаю, что нужно делать. Отнимать их, делить или брать остаток. Зачем брать остаток? Мне сложно представить картину у себя в голове и разложить алгоритм по полочкам с такими запутанными задачами.
До этого я начала учить язык программирования с типов данных и преобразованием типов. На этой теме остановилась. Может стоит пойти дальше и потом вернуться к теме?
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))
за партой сидят двое ученика
- берем количество учеников в первом классе и делим его на 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))
Количество парт для 3-х классов:
print(sum([(int(input()) + 1) // 2 for _ in range(3)]))
print(sum([(int(input()) + 1) // 2 for _ in range(3)]))
Нужен остаток от деления, чтобы проверить, четное ли число учеников в классе (n%2==0) и если да, то к количиству добавить 1 или округлить в большую сторону
Если в классе четное число учеников, то парт надо - это число разделить нацело на два, так как за каждой партой сидит 2 ученика.
Если в классе нечетное число учеников, то надо нацело разделить на два и прибавить единицу (то есть еще одну парту, за которой будет сидеть один ученик.
То есть можно так
____________
if uch%2 == 0:
~~part = uch // 2
else:
~~part = uch // 2 + 1
____________
Или без иф-элс
____________
part = uch//2 + uch%2
____________
Но это можно сделать проще, добавив единицу к ученикам сразу и разделить нацело на два
____________
part = (uch + 1) // 2
____________
При этом если число учеников четное, то прибавление единицы не повлияет, а если нечетное, то сложившись с нечетной единицей и и разделившись на два, прибавит требуемую парту для нечетного ученика.
Если в классе нечетное число учеников, то надо нацело разделить на два и прибавить единицу (то есть еще одну парту, за которой будет сидеть один ученик.
То есть можно так
____________
if uch%2 == 0:
~~part = uch // 2
else:
~~part = uch // 2 + 1
____________
Или без иф-элс
____________
part = uch//2 + uch%2
____________
Но это можно сделать проще, добавив единицу к ученикам сразу и разделить нацело на два
____________
part = (uch + 1) // 2
____________
При этом если число учеников четное, то прибавление единицы не повлияет, а если нечетное, то сложившись с нечетной единицей и и разделившись на два, прибавит требуемую парту для нечетного ученика.
Похожие вопросы
- Что если не могу решать задачи по прагроммированию
- Снова не могу решить задачу по питону.
- Как научиться решать задачи на деление и остаток в Python? Не могу понять принцип решения. Примеры задач:
- Решить задачу 6 написать программу на Питоне
- Не могу сделать задачу (напишите код пожалуйста) довольно трудная
- Помогите решить задачу на Python. Никак не могу решить задачу, больше дня не могу найти ответ! Никакой код не работает.
- Не могу решить задачи на словари и кортежи в Pithon. Может кто знает как их делать ?
- Решить две задачи на питоне. Помогите пожалуйста
- Питон. Задача на "шары в разных кучах". Но имхо даже понятие не имею как тут решать. Ибо много условий и проверок
- Задача по питону для начинающих
Эффект тот же... :)
Зато у тебя присутствует куча логики, что большой плюс для начинающего программиста...