- Вам не нужно
total_count
. div.times { count_array << max_count }
is [max_count] * count_array
- Используя сплат, мы можем еще больше упростить его
max_count = 5
[*[max_count] * (input_value / max_count), input_value % max_count] - [0]
В качестве альтернативы, используя divmod
max_count = 5
n, mod = input_value.divmod(max_count)
[*[max_count] * n, mod] - [0]
Последняя строка также может быть записана как:
(Array.new(n) { max_count } << mod) - [0]
или как предложил Стефанв комментарии, используя Числовой # ненулевой? :
Array.new(n, max_count).push(*mod.nonzero?)