Ну, грубо говоря, предлагается строить не число, а массив из
чисел — количество последовательностей, дающих в сумме соответствующий остаток от деления на
. Если есть такой массив и мы хотим добавить к последовательности ещё одно число, нам надо прибавить к массиву его же, циклически сдвинутого на остаток от деления числа на
, и ещё единицу к элементу массива с соответствующим остатком.
Для приведённого примера получается:
Код:
0,0,0,0,0,0,0,0,0,0
10 1,0,0,0,0,0,0,0,0,0
10 3,0,0,0,0,0,0,0,0,0
10 7,0,0,0,0,0,0,0,0,0
13 7,0,0,8,0,0,0,0,0,0
Семь последовательностей дадут в остатке нуль (вы забыли
), восемь — три.
Возможно, стоит не добавлять числа по одному, а делить последовательность пополам и сливать два массива. Вместо
получим, как понимаю,