给你1~13之间的可重复的a,b,c,d四个整数,请列出a,b,c,d通过+-*/计算后结果为24的表达式
我觉得这个题还是很段炼人的,要是能用自己的思路做出来,就算是更上一层楼了,呵呵
<?php
$num = array(1,5,6,11); //给定四个数字
$mark = array(array('+' , '-' ,'*','/') , array('+' , '-' ,'*','/') ,array('+' , '-' ,'*','/')); //三次四种运算的组合
$result = array(); //计算值
$rule = array(); //表达式数组
for($i=0;$i<4;$i++)
{
if($i == 0)
{
$result = $num[0];
}
else
{
for($j=0;$j<3;$j++)
{
for($k=0; $k<4; $k++)
{
switch($mark[$j][$k])
{
case "+":
$result[$i][$j][$k] = $result + $num[$i];
$rule[$i][$j][$k] .= $num[$i-1] ."+". $num[$i];
break;
case "-":
$result[$i][$j][$k] = $result - $num[$i];
$rule[$i][$j][$k] .= $num[$i-1] ."-". $num[$i];
break;
case "*":
$result[$i][$j][$k] = $result * $num[$i];
$rule[$i][$j][$k] .= $num[$i-1] ."*". $num[$i];
break;
case "/":
$result[$i][$j][$k] = $result / $num[$i];
$rule[$i][$j][$k] .= $num[$i-1] ."/". $num[$i];
break;
}
}
}
}
}
// $result[3][2][$k] 是结果值
foreach($result[3][2] as $key=>$val)
{
if($val == 24)
{
echo($rule."\n");
}
}
?>
