Входные данные: любое число в 1-15 или же 64-79 диапазон, который является суммой (1, 2, 4, 8, 64) в любой комбинации
Выход: массив целых чисел из этого списка: (1, 2, 4, 8, 64) сумма которых равна входному числу.
например
Поскольку вы не включили свой код в вопрос, никто не сможет помочь вам с вашим кодом. Но вот общий подход без какого-либо кода, который должен работать для этой проблемы.
Начните с вашего входного номера и пустого массива для хранения элементов суммы. Выполните итерацию по вашему массиву добавлений в порядке убывания, добавляя каждый из них к вашему массиву сумм и вычитая его из входного числа, пока входное число не достигнет нуля.
mkasberg при условии решения:
$in = 72;
$out = array();
$a = array_reverse(str_split((string)decbin($in)));
foreach($a as $k => $v){
if ($v != "0") array_push($out, pow(2,$k));
}