如何返回一个整数数组,其总和等于php中的给定数字?

时间:2015-05-08 19:32:14

标签: php math discrete-mathematics

输入: 1-15 64-79 范围内的任何数字,它们是(1,2,4, 8,64)任何组合

输出:此列表中的整数数组:( 1,2,4,8,64 ),其总和等于输入数字。

e.g。

  • 输入 72 ,输出数组(8,64)
  • 输入 13 ,输出数组(1, 4,8)

2 个答案:

答案 0 :(得分:1)

由于您未在问题中包含代码,因此没有人可以帮助您处理代码。但是这里有一个通用的方法,没有任何代码可以解决这个问题。

从您的输入数字和一个空数组开始,以保​​存sum元素。以递减顺序迭代您的加数数组,将每个加数数组附加到sum数组并从输入数字中减去它,直到输入数字达到零。

答案 1 :(得分:-2)

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