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 |
Ссылка на тетрадь с разбором