如何将整数转换为平衡总和数组


How to convert an integer into an array of balanced sum?

我们有一个整数假设 28,现在我们需要一个平衡和的数组,如 $array=(10,10,8) 当我们想要它最大可能的数字 10 时,如果最大可能的数字是 5,数组应该像 (5,5,5,5,5,3)。帮帮我。

> Intresting.try like

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

查看此输出

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 仅用于输出。