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++) { foreach(getCombinedSum($digits-1, $sum-$digit) as $subsum) { $result[$digit.$subsum] = $digit.$subsum; $result[$subsum.$digit] = $subsum.$digit; } } return array_values($result); } var_dump(getCombinedSum(3, 2));

preferences:
37 ms | 402 KiB | 5 Q