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

如何返回一个整数数组,其和等于php中给定的数字?,php,math,discrete-mathematics,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) 由于问题中没有包含代码,因此没有人可以帮助您处理代码。但是这里有一个通用的方法,没有任何代码可以解决这个问题 从输入数字和一个空数组开始,以保存求和元素。按降序遍历加法器数组,将每个加法器追加到求和数组中,然后从输入数中减去,直到输入数为零。提供了解决方案:

输入:1-1564-79范围内的任意数字,其为任意组合中(1、2、4、8、64)的总和

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

e、 g

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

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

从输入数字和一个空数组开始,以保存求和元素。按降序遍历加法器数组,将每个加法器追加到求和数组中,然后从输入数中减去,直到输入数为零。

提供了解决方案:

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

我们不是一个代码编写服务。请向我们展示您已经尝试过的方法。我尝试了背包问题方法,但这似乎是一个过度的任务。向我们展示您的代码/尝试!只需编辑你的问题,添加你的代码和你被卡住的地方@在上一个问题中,您已经没有表现出任何努力:因此不是代码编写服务。显示您的代码以及您遇到的困难和需要帮助的地方。这是一个将数字转换为二进制的简单示例。阅读如何做到这一点。试着写一些代码来做到这一点。如果行得通,那太好了。如果没有,请将其编辑到您的问题中,人们将更有可能帮助您。换句话说:如果OP希望自己的代码不做任何事情,他将需要雇佣一名开发人员。(我也有点怀疑他是否想做任何工作,因为他在最后一个问题中已经没有表现出任何努力:)按照我的解释,这个问题不是请求代码方面的帮助,而是请求帮助生成一个可用的算法,所以我认为这是可以回答的。如果OP需要调试/理解代码的帮助,那么显然问题中必须提供代码。@答案不是这里的问题,而是你的问题,这是不完整的