Сколько школьников будут делить k яблок почти поровну , так чтобы разница в количестве яблок между любыми двумя
Сколько школьников будут делить k яблок "почти поровну", так чтобы разница в количестве яблок между любыми двумя школьниками была не больше 1? Входные данные: натуральное число n и целое неотрицательное число k, каждое на отдельной строке. Определите количество школьников, которым достанется меньше яблок, чем некоторым из их товарищей. Примеры: Ввод: 7. Вывод: 5. Ввод: 30. Вывод: 7. Ввод: 0.
27.11.2023 08:11
Когда мы делим k яблок между школьниками "почти поровну", нам нужно найти количество школьников, у которых будет меньше яблок, чем у остальных, и разница в количестве яблок между любыми двумя школьниками должна быть не больше 1.
Для решения этой задачи, мы можем использовать деление с остатком (или длинное деление). Делим k яблок на n школьников. Если остаток равен 0, то каждому школьнику достанется k/n яблок. Если остаток больше 0, то n-1 школьнику достанется k//n яблок, а у оставшегося одного будет k//n + 1 яблок.
Пример использования:
Входные данные: n = 7, k = 30
Мы делим 30 яблок на 7 школьников.
Остаток равен 2, поэтому сначала 6 школьникам будет достанется 30 // 7 = 4 яблока каждому.
Оставшемуся 7-му школьнику достанется 30 // 7 + 1 = 5 яблок.
Таким образом, количество школьников, у которых будет меньше яблок, чем у их товарищей, равно 5.
Совет:
Чтобы более легко понять решение задачи, можно представить ее на практике. Представьте, что у вас есть k яблок и n школьников. Вы можете вручить каждому школьнику одно яблоко, а оставшиеся яблоки разделить "почти поровну" между школьниками. Если у вас остаются нераспределенные яблоки, вы можете разделить их так, чтобы между любыми двумя школьниками была разница в количестве яблок не больше 1.
Упражнение:
Сколько школьников должны всегда получать больше яблок, чем другие школьники, если к = 100?