我如何 return 一个整数数组,其总和等于 php 中的给定数字?
How do I return an integer array the sum of which equals to a given number in php?
输入: 1-15 或 64-79 范围内的任意数字(1, 2, 4, 8, 64) 任意组合的总和
输出: 此列表中的整数数组:(1, 2, 4, 8, 64) 其中的总和等于输入的数字。
例如
- 输入72,输出array(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));
}
输入: 1-15 或 64-79 范围内的任意数字(1, 2, 4, 8, 64) 任意组合的总和
输出: 此列表中的整数数组:(1, 2, 4, 8, 64) 其中的总和等于输入的数字。
例如
- 输入72,输出array(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));
}