Robson » Code » PHP » Natural Number Sum
<?
// natural number sums v1.0
// displays all the ways you can make the specified number using natural numbers
$amount = 10;
function combinations($number, $start, $max)
{
global $amount;
if ($max == 1)
echo $start . str_repeat(' 1', $number) . '<br />';
else if ($number == 1)
echo $start . ' 1<br />';
else if ($number == 2)
echo $start . ' 2<br />' . $start . ' 1 1<br />';
else
{
if ($number && $number <= $max)
echo $start . ' ' . $number . '<br />';
$values = explode(' ', $start . ' ' . $number);
sort($values);
for ($a = $values[0]; $a > 0; $a--)
{
$values = explode(' ', $start . ' ' . $a);
sort($values);
combinations($number-$a, $start . ' ' . $a, $values[0]);
}
}
}
echo $amount . '<br />';
for ($a = $amount-1; $a > 0; $a--)
{
if ($a + 1 == $amount)
echo $a . ' 1<br />';
else
combinations($amount-$a, $a, $a);
}
?>
© 2004-19 robson |
cc unless stated