我们有一个整数假设为 28,现在我们需要一个平衡和数组,如 $array=(10,10,8),当我们想要它的最大可能数为 10 时,同样如果最大可能数为 5,则数组应该像 (5 ,5,5,5,5,3)。帮我。
问问题
40 次
2 回答
0
有趣。试试喜欢
$var = 28;
$max_lmt = 10;
$i = 1;
while($i) {
$tmp = $var;
$var = $var - $max_lmt;
if($var > 0)
$arr[] = $max_lmt;
else {
$arr[] = $tmp;
$i = 0;
}
}
print_r($arr);
看到这个输出
于 2013-11-15T06:09:31.577 回答
0
function getBalancedSum($number, $max)
{
$array = array();
if ($number != 0
&& $max != 0
&& (($number > 0 && $max > 0)||($number < 0 && $max < 0)))
{
if ($number / $max > 1)
$array = array_fill(0, $number / $max, $max);
if ($number % $max)
$array[] = $number % $max;
}
return $array;
}
echo(json_encode(getBalancedSum(28, 10))); // [10,10,8]
echo(json_encode(getBalancedSum(28, 7))); // [7,7,7,7]
echo(json_encode(getBalancedSum(28, 30))); // [28]
echo(json_encode(getBalancedSum(0, 10))); // []
echo(json_encode(getBalancedSum(10, 0))); // []
echo(json_encode(getBalancedSum(28, -10))); // []
echo(json_encode(getBalancedSum(-28, -10))); // [-10,-10,-8]
Json 仅用于输出。
于 2013-11-15T06:33:10.923 回答