所以我有一个PHP程序,它从数组中抽取三个数字,将它们相加并检查是否sum = 10
。如果是,则应在显示屏上打印这些数字。
我想要做的是检查绘制的组合。例如:
First draw: 1+7+2
Second draw: 5+4+1
Third draw: 1+2+7
第一个和第三个具有相同的数字,因此不应显示第三个。不幸的是,我不知道该怎么做。
我的代码:
<?PHP
$numb = array(1,2,3,4,5,6,7,8,9,0);
$hm = count($numb);
for ($a=0; $a<$hm;$a++)
for ($b=0; $b<$hm;$b++)
for ($c=0; $c<$hm;$c++)
{
$cnt = $numb[$a]+$numb[$b]+$numb[$c];
if ($cnt == 10)
{
print_r ($numb[$a]);
echo "+";
print_r ($numb[$b]);
echo "+";
print_r ($numb[$c]);
echo "<br>";
}
}
?>
答案 0 :(得分:4)
使用提供的代码,您只需“按顺序”绘制数字,以避免重复:
$numb = array(0,1,2,3,4,5,6,7,8,9); // <-- must be sorted from lowest to highest
for ($a = 0; $a < $hm; $a++)
for ($b = $a; $b < $hm; $b++) // <-- start from $a
for ($c = $b; $c < $hm; $c++) // <-- start from $b
因此,组合1 + 2 + 7是可能的,但不是1 + 7 + 2,也不是7 + 1 + 2等。