3v4l.org

run code in 300+ PHP versions simultaneously
<?php function getCombinedSum($digits, $sum) { if(!is_int($digits) || !is_int($sum) || $digits<1 || $sum<0) { throw new InvalidArgumentException('Invalid numeric format'); } if($sum>9*$digits) { throw new LogicException('Sum out of range'); } if($digits==1) { return [$sum]; } $result = []; for($digit=0; $digit<10 && $sum-$digit>0; $digit++) { $subsum = join('',getCombinedSum($digits-1, $sum-$digit)); for($j=0; $j<$digits; $j++) { $result[] = substr($subsum, 0, $j).$digit.substr($subsum, $j); } } return $result; } var_dump(getCombinedSum(2, 1));

preferences:
33.66 ms | 402 KiB | 5 Q