-4

28 と仮定する整数があります。最大可能数 10 が必要な場合は $array=(10,10,8) のようなバランスの取れた合計の配列が必要です。最大可能数が 5 の場合、配列は (5 ,5,5,5,5,3)。助けて。

4

2 に答える 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 に答える