Задача

9/13

TUZ_2-09 _К Группировка монет

Теория Нажмите, чтобы прочитать/скрыть

Задача

TUZ_2-09  Группировка монет
2.09  Группировка монет
В этой задаче дан массив из n одинаковых монет, который необходимо разделить на g групп,
где g – положительное целое число, большее или равное единице.
Если после формирования полных групп остаются какие- либо монеты,
то оставшиеся монеты в массиве откладываются и сохраняются.
Для вычисления количества монет в каждой группе используется формула n//g ∗ c.
Процесс группировки повторяется, пока все монеты не будут учтены.
Ваша задача – написать функцию, которая принимает три входных параметра:
n (общее количество монет), g (количество групп) и c (количество монет в одной группе) –
и возвращает массив, содержащий количество монет, оставшихся на каждом этапе группировки.
Если n = 0, то функция должна вернуть пустой список.
Например, пусть n = 10, g = 3 и c = 2.
  • Следующая последовательность показывает оставшиеся монеты на каждом этапе группировки:
    10, 3, 2 → 1; 6, 3, 2 → 0; 4, 3, 2 → 1; 2, 3, 2 → 2; 0, 3, 2.
    Следовательно, [1, 0, 1, 2] представляет оставшиеся монеты на каждом шаге для n = 10, g = 3 и c = 2.
    На первом шаге в этой последовательности 1 получается из (10 mod 3 = 1).
    На втором шаге 6 получается из 10//3 × 2 = 6, а 3 и 2 остаются постоянными на протяжении всего процесса.
В табл. 2.9 показаны ожидаемые результаты для некоторых входных данных.
Таблица 2.9. Некоторые ожидаемые результаты для разных входных значений в задаче группировки монет 
n, g, c Ожидаемый результат
255, 128, 70 127, 70
301, 10, 1 1, 0, 3
49, 49, 2 0, 2
10, 2, 1 0, 1, 0, 1

Ссылка на тетрадь с разбором