Какие числа в строке двоичных чисел используются в сумме?

#binary #sum #decomposition

#двоичный #сумма #разложение

Вопрос:

Ищем алгоритм для определения того, какие числа в непрерывной строке двоичных чисел равны заданной сумме. Например, учитывая двоичные числа 1,2,4,8, которые необходимо суммировать до 13? Единственный ответ 1 4 8 .

Мое решение пока состоит в том, чтобы вычесть наибольшее число N1 в строке чисел из суммы S. Если результат > 0, то а) N1 является одним из чисел, используемых в сумме, б) вычтите N1 из S в S1, затем повторите со следующим по величине числом в строке чисел.

Мое решение работает, но кажется грубым, было интересно, есть ли какие-нибудь идеи получше. Время выполнения не является фактором.

Комментарии:

1. Преобразуйте итоговое значение в двоичный формат и получите 1 s.