28 と仮定する整数があります。最大可能数 10 が必要な場合は $array=(10,10,8) のようなバランスの取れた合計の配列が必要です。最大可能数が 5 の場合、配列は (5 ,5,5,5,5,3)。助けて。
質問する
40 次
2 に答える
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 に答える