Делим яблоки
Условие
Делим яблоки
Есть \(n\) яблок и \(k\) детей. Раздаём яблоки поровну. Сколько яблок достанется каждому и сколько останется?
Входные данные
Два целых числа \(n\) и \(k\) (\(0 \le n \le 10^6\), \(1 \le k \le 1000\)).
Выходные данные
Два числа: сколько яблок каждому и сколько в остатке.
Пример
Вход:
10 3
Выход:
3 1Как решать — идея подхода
Приём: Целочисленное деление и остаток
Ключевое наблюдение: раздать «поровну» значит разделить n на k так, чтобы каждый получил одинаковое целое число яблок, а часть могла остаться. Это ровно то, что делает целочисленное деление: n // k даёт сколько яблок каждому, а остаток n % k — сколько останется.
Почему приём работает: по определению остатка при делении существует единственная пара чисел q и r, что n = q*k + r и 0 <= r < k. Здесь q — яблок на ребёнка, r — остаток.
План решения:
- Считать два целых числа n и k.
- Посчитать
each = n // k. - Посчитать
rest = n % k. - Вывести
eachиrestчерез пробел.
Мини-сниппет формул:
each = n // krest = n % k
Сложность: O(1) по времени и O(1) по памяти.
Частая ошибка: использовать обычное деление / (получится дробь), а потом округлять. Нужно именно // и % — они сразу дают правильные целые ответы.
Разберись руками
У нас 10 яблок и 3 ребёнка. Раздаём по кругу так, чтобы всем было поровну. Нужно узнать: сколько яблок у каждого и сколько останется неразданных.
- Отметь на числовой ленте от 1 до 10 те числа, на которых раздача «заканчивается ровно» для 3 детей (то есть яблок хватило на целое число кругов по 3 яблока).
- Если максимально ровно раздаём 9 яблок на 3 детей, сколько яблок получит каждый?
- Сколько яблок останется, если всего было 10, а ровно раздали 9?
Идея: Сначала выясни, сколько яблок можно раздать поровну всем детям (без остатка). По этому числу понять, сколько яблок у каждого, а потом вычесть из общего количества и получить остаток.
Решить задачу с автопроверкой на Python →
Куда дальше
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели