昨天有亲戚小孩问我一个数学问题:
5,5,5,1这四个数加、减、乘、除实现结果是24。
我一个个试,总算算出来了,现在我想用程序来实现,
四个数求24,源码如下:
<?php
function fun($a,$b,$c,$d)
{
     $flag=0;
     $time=0;
     $j=0;$k=0;
     $ch=array('+','-','*','/');
    while($time<6){
    for($i=0;$i<4;$i++){
      if($i<3){
      if($i==0){$a_b=$a+$b;$ch[i]='+';}
      if($i==1){$a_b=$a-$b;$ch[i]='-';}
      if($i==2){$a_b=$a*$b;$ch[i]='*';}
        {
        if($a_b+$c+$d==24){printf("\n%d%c%d+%d+
%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if($a_b+$c-$d==24){printf("\n%d%c%d+%d-
%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if($a_b-$c+$d==24){printf("\n%d%c%d-%d+
%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if($a_b-$c+$d==-24){printf("\n%d%c%d-%d+
%d=-24",$a,$ch[i],$b,$c,$d);$flag++;}
        if($a_b-$c-$d==24){printf("\n%d%c%d-%d-
%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if($a_b-$c-$d==-24){printf("\n%d%c%d-%d-
%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if(($a_b)+$c*$d==24){printf("\n(%d%c%d)+
%d*%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if(($a_b)-$c*$d==24){printf("\n(%d%c%d)-
%d*%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if(($a_b)*($c+$d)==24){printf("\n(%d%c%d)*
(%d+%d)=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if(($a_b)*($c+$d)==-24){printf("\n(%d%c%d)
*(%d+%d)=-24",$a,$ch[i],$b,$c,$d);$flag++;}
        if(($a_b)==24*($c+$d)){printf("\n(%d%c%d)/
(%d+%d)=24",$a,$ch[i],$b,$c,$d);$flag++;}
        for($j=0;$j<2;$j++){
           if(($a_b)*$c+$d==24){printf("\n(%d%c%d)
*%d+%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)*$c+$d==-24){printf("\n(%d%c
%d)*%d+%d=-24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)*$c-$d==24){printf("\n(%d%c%d)
*%d-%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)*$c-$d==-24){printf("\n(%d%c
%d)*%d-%d=-24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)*($c-$d)==24){printf("\n(%d%c
%d)*(%d-%d)=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if($a_b&&($a_b)==24*($c-$d)){printf("\n
(%d%c%d)/(%d-%d)=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)*$c*$d==24){printf("\n(%d%c%d)
*%d*%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)*$c*$d==-24){printf("\n(%d%c
%d)*%d*%d=-24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)==24*$c*$d){printf("\n(%d%c
%d)/(%d*%d)=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)*$c==24*$d){printf("\n(%d%c%d)
*%d/%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)==-24*$c*$d){printf("\n(%d%c
%d)/(%d*%d)=-24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)*$c==-24*$d){printf("\n(%d%c
%d)*%d/%d=-24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)+$d*$c==24*$c){printf("\n(%d%c
%d)/%d+%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)-$d*$c==24*$c){printf("\n(%d%c
%d)/%d-%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b-$c)*$d==24){printf("\n(%d%c%d+
%d)*%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b+$c)*$d==24){printf("\n(%d%c%d+
%d)*%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b-$c)*$d==-24){printf("\n(%d%c%d
+%d)*%d=-24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b+$c)*$d==-24){printf("\n(%d%c%d
+%d)*%d=-24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b+$c)==24*$d){printf("\n(%d%c%d+
%d)/%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b-$c)==24*$d){printf("\n(%d%c%d+
%d)/%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if($c!=$d){$temp=$c;$c=$d;$d=$temp;}
           else break;
          }
       }
     }
       if($i==3)for($k=0;$k<2;$k++){$a_b=$a;$ch[i]='/';
        if($a_b+($c+$d)*$b==24*$b){printf("\n%d%c%d+
%d+%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if($a_b-($c+$d)*$b==-24*$b){printf("\n%d%c
%d-(%d+%d)=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if($a_b+($c-$d)*$b==24*$b){printf("\n%d%c%d
+(%d-%d)=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if($a_b+($c-$d)*$b==-24*$b){printf("\n%d%c%d
+(%d-%d)=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if($a_b-($c-$d)*$b==24*$b){printf("\n%d%c%d-
%d-%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if($a_b-($c-$d)*$b==-24*$b){printf("\n%d%c
%d-%d-%d=-24",$a,$ch[i],$b,$c,$d);$flag++;}
        if(($a_b)*($c+$d)==24*$b){printf("\n(%d%c
%d)*(%d+%d)=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if(($a_b)+$d*$c*$b==24*$b){printf("\n(%d%c
%d)/%d+%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if(($a_b)-$d*$c*$b==-24*$b){printf("\n(%d%c
%d)/%d-%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
        if($a_b*$c*$d==24*$b){printf("\n(%d%c%d*%d*
%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
        for($j=0;$j<2;$j++){
           if(($a_b)*$c+$d*$b==24*$b){printf("\n(%d
%c%d)*%d+%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)*$c-$d*$b==24*$b){printf("\n(%d
%c%d)*%d-%d=-24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)*($c-$d)==24*$b){printf("\n(%d
%c%d)*(%d-%d)=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b)+$d*$c*$b==24*$c*$b){printf("\n
(%d%c%d)/%d-%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b-$c*$b)*$d==24*$b){printf("\n(%d
%c%d-%d)*%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b-$c*$b)*$d==-24*$b){printf("\n(%d
%c%d-%d)*%d=-24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b+$c*$b)*$d==24*$b){printf("\n(%d
%c%d+%d)*%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b+$c*$b)==24*$d*$b){printf("\n(%d
%c%d+%d)/%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if(($a_b-$c*$b)==24*$d*$b){printf("\n(%d
%c%d+%d)/%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if($a_b*$c==24*$b*$d){printf("\n(%d%c%d*
%d*%d=24",$a,$ch[i],$b,$c,$d);$flag++;}
           if($c!=$d){$temp=$c;$c=$d;$d=$temp;}
           else break;
            }
            $temp=$a;$a=$b;$b=$temp;
       }
     }
    if($time==0)
    {
    $temp=$b;$b=$c;$c=$temp;
    if($b==$c)
    $time++;
    }
    if($time==1){$temp=$b;$b=$d;$d=$temp;if($b==$d)
    $time++;}
 if($time==2){$temp=$a;$a=$c;$c=$temp;if($a==$c)$time++;}
    if($time==3){$temp=$a;$a=$d;$d=$temp;if($a==$d)$time++;}
    if($time==4){$temp=$b;$b=$d;$d=$temp;if($b==$d)$time++;}
    if($time==5){$temp=$a;$a=$c;$c=$temp;}
    $time++;
}
return $flag;
}
fun(5,5,5,1);
?>有错,高手帮忙改一下

解决方案 »

  1.   

    可以参考下这个,一个强悍的算24点游戏的PHP程序,希望可以帮到你。
      

  2.   


    代码改为:<?php
    function fun($a, $b, $c, $d) {
        $flag = 0;
        $time = 0;
        $j = 0;
        $k = 0;
        $ch = array('+', '-', '*', '/');
        while ($time < 6) {
            for ($i = 0; $i < 4; $i++) {
                if ($i < 3) {
                    if ($i == 0) {
                        $a_b = $a + $b;
                        $ch[$i] = '+';
                    }
                    if ($i == 1) {
                        $a_b = $a - $b;
                        $ch[$i] = '-';
                    }
                    if ($i == 2) {
                        $a_b = $a * $b;
                        $ch[$i] = '*';
                    } {
                        if ($a_b + $c + $d == 24) {
                            printf("\n%d%c%d+%d+
    %d=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if ($a_b + $c - $d == 24) {
                            printf("\n%d%c%d+%d-
    %d=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if ($a_b - $c + $d == 24) {
                            printf("\n%d%c%d-%d+
    %d=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if ($a_b - $c + $d == -24) {
                            printf("\n%d%c%d-%d+
    %d=-24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if ($a_b - $c - $d == 24) {
                            printf("\n%d%c%d-%d-
    %d=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        
      

  3.   

    if ($a_b - $c - $d == -24) {
                            printf("\n%d%c%d-%d-
    %d=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if (($a_b) + $c * $d == 24) {
                            printf("\n(%d%c%d)+
    %d*%d=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if (($a_b) - $c * $d == 24) {
                            printf("\n(%d%c%d)-
    %d*%d=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if (($a_b) * ($c + $d) == 24) {
                            printf("\n(%d%c%d)*
    (%d+%d)=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if (($a_b) * ($c + $d) == -24) {
                            printf("\n(%d%c%d)
    *(%d+%d)=-24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if (($a_b) == 24 * ($c + $d)) {
                            printf("\n(%d%c%d)/
    (%d+%d)=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        for ($j = 0; $j < 2; $j++) {
                            if (($a_b) * $c + $d == 24) {
                                printf("\n(%d%c%d)
    *%d+%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) * $c + $d == -24) {
                                printf("\n(%d%c
    %d)*%d+%d=-24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) * $c - $d == 24) {
                                printf("\n(%d%c%d)
    *%d-%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) * $c - $d == -24) {
                                printf("\n(%d%c
    %d)*%d-%d=-24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) * ($c - $d) == 24) {
                                printf("\n(%d%c
    %d)*(%d-%d)=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if ($a_b && ($a_b) == 24 * ($c - $d)) {
                                printf("\n
    (%d%c%d)/(%d-%d)=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) * $c * $d == 24) {
                                printf("\n(%d%c%d)
    *%d*%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) * $c * $d == -24) {
                                printf("\n(%d%c
    %d)*%d*%d=-24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) == 24 * $c * $d) {
                                printf("\n(%d%c
    %d)/(%d*%d)=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) * $c == 24 * $d) {
                                printf("\n(%d%c%d)
    *%d/%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) == -24 * $c * $d) {
                                printf("\n(%d%c
    %d)/(%d*%d)=-24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) * $c == -24 * $d) {
                                printf("\n(%d%c
    %d)*%d/%d=-24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) + $d * $c == 24 * $c) {
                                printf("\n(%d%c
    %d)/%d+%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) - $d * $c == 24 * $c) {
                                printf("\n(%d%c
    %d)/%d-%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b - $c) * $d == 24) {
                                printf("\n(%d%c%d+
    %d)*%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b + $c) * $d == 24) {
                                printf("\n(%d%c%d+
    %d)*%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b - $c) * $d == -24) {
                                printf("\n(%d%c%d
    +%d)*%d=-24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b + $c) * $d == -24) {
                                printf("\n(%d%c%d
    +%d)*%d=-24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b + $c) == 24 * $d) {
                                printf("\n(%d%c%d+
    %d)/%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b - $c) == 24 * $d) {
                                printf("\n(%d%c%d+
    %d)/%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if ($c != $d) {
                                $temp = $c;
                                $c = $d;
                                $d = $temp;
                            }
                            else
                                break;
                        }
                    }
                }
                if ($i == 3
                    )for ($k = 0; $k < 2; $k++) {
                        $a_b = $a;
                        $ch[$i] = '/';
                        if ($a_b + ($c + $d) * $b == 24 * $b) {
                            printf("\n%d%c%d+
    %d+%d=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if ($a_b - ($c + $d) * $b == -24 * $b) {
                            printf("\n%d%c
    %d-(%d+%d)=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if ($a_b + ($c - $d) * $b == 24 * $b) {
                            printf("\n%d%c%d
    +(%d-%d)=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if ($a_b + ($c - $d) * $b == -24 * $b) {
                            printf("\n%d%c%d
    +(%d-%d)=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if ($a_b - ($c - $d) * $b == 24 * $b) {
                            printf("\n%d%c%d-
    %d-%d=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if ($a_b - ($c - $d) * $b == -24 * $b) {
                            printf("\n%d%c
    %d-%d-%d=-24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if (($a_b) * ($c + $d) == 24 * $b) {
                            printf("\n(%d%c
    %d)*(%d+%d)=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if (($a_b) + $d * $c * $b == 24 * $b) {
                            printf("\n(%d%c
    %d)/%d+%d=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if (($a_b) - $d * $c * $b == -24 * $b) {
                            printf("\n(%d%c
    %d)/%d-%d=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        if ($a_b * $c * $d == 24 * $b) {
                            printf("\n(%d%c%d*%d*
    %d=24", $a, $ch[$i], $b, $c, $d);
                            $flag++;
                        }
                        for ($j = 0; $j < 2; $j++) {
                            if (($a_b) * $c + $d * $b == 24 * $b) {
                                printf("\n(%d
    %c%d)*%d+%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) * $c - $d * $b == 24 * $b) {
                                printf("\n(%d
    %c%d)*%d-%d=-24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) * ($c - $d) == 24 * $b) {
                                printf("\n(%d
    %c%d)*(%d-%d)=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b) + $d * $c * $b == 24 * $c * $b) {
                                printf("\n
    (%d%c%d)/%d-%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b - $c * $b) * $d == 24 * $b) {
                                printf("\n(%d
    %c%d-%d)*%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b - $c * $b) * $d == -24 * $b) {
                                printf("\n(%d
    %c%d-%d)*%d=-24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b + $c * $b) * $d == 24 * $b) {
                                printf("\n(%d
    %c%d+%d)*%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
      

  4.   

    if (($a_b + $c * $b) == 24 * $d * $b) {
                                printf("\n(%d
    %c%d+%d)/%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if (($a_b - $c * $b) == 24 * $d * $b) {
                                printf("\n(%d
    %c%d+%d)/%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if ($a_b * $c == 24 * $b * $d) {
                                printf("\n(%d%c%d*
    %d*%d=24", $a, $ch[$i], $b, $c, $d);
                                $flag++;
                            }
                            if ($c != $d) {
                                $temp = $c;
                                $c = $d;
                                $d = $temp;
                            }
                            else
                                break;
                        }
                        $temp = $a;
                        $a = $b;
                        $b = $temp;
                    }
            }
            if ($time == 0) {
                $temp = $b;
                $b = $c;
                $c = $temp;
                if ($b == $c)
                    $time++;
            }
            if ($time == 1) {
                $temp = $b;
                $b = $d;
                $d = $temp;
                if ($b == $d)
                    $time++;
            }
            if ($time == 2) {
                $temp = $a;
                $a = $c;
                $c = $temp;
                if ($a == $c)$time++;
            }
            if ($time == 3) {
                $temp = $a;
                $a = $d;
                $d = $temp;
                if ($a ==
                        $d
                    )$time++;
            }
            if ($time == 4) {
                $temp = $b;
                $b = $d;
                $d = $temp;
                if ($b ==
                        $d
                    )$time++;
            }
            if ($time == 5) {
                $temp = $a;
                $a = $c;
                $c = $temp;
            }
            $time++;
        }
        return $flag;
    }fun(5, 5, 5, 1);?>
    PS: 以上代码已经可以运行,你看一下结果是否是你想要的,代码太长,一次发不完,把三部分合并再运行
      

  5.   


    <?php
    $ari=array('+','-','*','/');
    $num=array(5,5,5,1);
    $str=array();function s2a($ari,$num1,$num2){
    $result=0;
    switch ($ari){
    case "+":
     $result=$num1 + $num2;
     break; 
    case "-":
     $result=$num1 - $num2;
     break; 
    case "*":
     $result=$num1 * $num2;
     break; 
    case "/":
     $result=$num1 / $num2;
     break; 
    }
    return $result;
    }foreach($num as $nk1=>$nv1){ //n1
    $num1=$num;
    unset($num1[$nk1]);
     foreach($ari as $ak1=>$av1){ //f1
      foreach($num1 as $nk2=>$nv2){ //n2
      $num2=$num1;
      unset($num2[$nk2]);
       foreach($ari as $ak2=>$av2){ //f2
        foreach($num2 as $nk3=>$nv3){ //n3
    $num3=$num2;
    unset($num3[$nk3]);
    //begin
    $r2=s2a($av1,$nv1,$nv2); //n1xf1xn2
    if($r2>=0){
    $str1="(".$nv1.$av1.$nv2.")";
    }else{
    $r2=s2a($av1,$nv2,$nv1);
    $str1="(".$nv2.$av1.$nv1.")";
    };

    $r3=s2a($av2,$r2,$nv3); //(n1xf1xn2)xn3
    if($r3>=0){
    $str2="(".$str1.$av2.$nv3.")";
    }else{
    $r3=s2a($av2,$nv3,$r2);
    $str2="(".$nv3.$av2.$str1.")";
    };
    //end
    foreach($ari as $ak3=>$av3){ //f3
     foreach($num3 as $nk4=>$nv4){ //n4
     $result=s2a($av3,$r3,$nv4);
     if($result==24){
     $str[$nk1]=$str2.$av3.$nv4."=".$result;
     }
     }
    }
    }
       }
      }
     }
    }var_dump(array_unique($str));
    ?>
      

  6.   

    这……  楼主真给力
    可能的情况居然都写了下来
    委屈了if  else
      

  7.   


    /**
     *可以在结果处加个去括号的处理
     *如果给的数字中有相等的,在计算中可能会出现除0错误,这个也可以加个判定
     */
    function compute($a,$b,$c){
    switch($c){
    case 1:
    return $a+$b;
    case 2:
    return $a-$b;
    case 3:
    return $a*$b;
    case 4:
    return $a/$b;
    }
    }
    function queue($num){
    $result=array();
    for($i=0;$i<4;$i++){
    for($j=0;$j<4;$j++){
    for($k=0;$k<4;$k++){
    if($i==$j||$j==$k||$i==$k)
    continue;
    else{
    $l=rest($i,$j,$k);
    //echo $l;
    $result[]=array($num[$i],$num[$j],$num[$k],$num[$l]);
    }
    }
    }
    }
    return $result;
    }
    function rest($a,$b,$c){
    $data=array(0,1,2,3);
    $diff=array($a,$b,$c);
    $data=array_diff($data,$diff);
    return array_pop($data);
    }$num=array(3,4,5,6);
    $num=queue($num);
    //var_dump($num);exit;
    $sym=array('+','-','*','/');
    for($i=1;$i<5;$i++){
    for($j=1;$j<5;$j++){
    for($k=1;$k<5;$k++){
    foreach($num as $v){
    $result=compute($v[0],compute($v[1],compute($v[2],$v[3],$k),$j),$i);
    if($result==24){
    echo $v[0].$sym[$i-1]."(".$v[1].$sym[$j-1]."(".$v[2].$sym[$k-1].$v[3]."))=24";
    break 4;
    }
    }
    }
    }
    }