математика — Как мне вернуть целочисленный массив, сумма которого равна заданному числу в php?

Входные данные: любое число в 1-15 или же 64-79 диапазон, который является суммой (1, 2, 4, 8, 64) в любой комбинации

Выход: массив целых чисел из этого списка: (1, 2, 4, 8, 64) сумма которых равна входному числу.

например

  • вход 72, выход массив (8, 64)
  • вход 13, выход Массив (1,
    4, 8)

-8

Решение

Поскольку вы не включили свой код в вопрос, никто не сможет помочь вам с вашим кодом. Но вот общий подход без какого-либо кода, который должен работать для этой проблемы.

Начните с вашего входного номера и пустого массива для хранения элементов суммы. Выполните итерацию по вашему массиву добавлений в порядке убывания, добавляя каждый из них к вашему массиву сумм и вычитая его из входного числа, пока входное число не достигнет нуля.

1

Другие решения

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));
}
-2

По вопросам рекламы [email protected]