昨天有亲戚小孩问我一个数学问题:
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.   


    代码改为:
    <?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++;
                        }
                        
      

  2.   


    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++;
                            }
    ?>
      

  3.   

                            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: 以上代码已经可以运行,你看一下结果是否是你想要的,代码太长,一次发不完,把三部分合并再运行,注意第二部分最后多了一个"?>",要去掉
      

  4.   


    <?phpfunction Calculate24Point( $a,&$r,&$ex,$n ){
    print_r($a);
    echo "<br/>";
    echo $r;
    echo "<br/>";
    print_r($ex);
    echo "<br/>";
    echo $n;
    echo "<br/><hr>";

    $ex2 = $ex;
    if( $n == 1 ){
    if(abs($a[0] - 24) <= 0.000001 ){
    $r[] = $ex[0];
    return true;
    }else{
    return false;
    }
    }
    for ( $i=0; $i < $n; $i++ ){
    for ( $j = $i + 1; $j < $n; $j++ ){
    $x = $a[$i];
    $y = $a[$j];
    $a[$j] = $a[$n - 1];

    $exa = $ex[$i];
    $exb = $ex[$j];
    $ex[$j] = $ex[$n - 1];

    $a[$i] = $x + $y;
    $ex[$i] = "({$exa} + {$exb})";
    if( Calculate24Point($a, $r, $ex, $n-1) ){
    return true;
    }
    $a[$i] = $x - $y;
    $ex[$i] = "({$exa} - {$exb})";
    if( Calculate24Point($a, $r, $ex, $n - 1) ){
    return true;
    }
    $a[$i] = $y - $x;
    $ex[$i] = "({$exb} - {$exa})";
    if( Calculate24Point($a, $r, $ex, $n - 1) ){
    return true;
    }
    $a[$i] = $x * $y;
    $ex[$i] = "({$exa} * {$exb})";
    if( Calculate24Point($a, $r, $ex, $n - 1) ){
    return true;
    }
    if( $y != 0 ){
    $a[$i] = $x / $y;
    $ex[$i] = "({$exa} / {$exb})";
    if( Calculate24Point($a, $r,$ex, $n - 1) ){
    return true;
    }
    }
    if( $x != 0 ){
    $a[$i] = $y / $x;
    $ex[$i] = "({$exb} / {$exa})";
    if( Calculate24Point( $a, $r, $ex, $n - 1 ) ){
    return true;
    }
    }
    $a[$i] = $x;
    $a[$j] = $y;
    $ex = $ex2;
    }
    }
    return false;
    }$a[0] = $ex[0]= $_REQUEST['a1'];
    $a[1] = $ex[1]= $_REQUEST['a2'];
    $a[2] = $ex[2]= $_REQUEST['a3'];
    $a[3] = $ex[3]= $_REQUEST['a4'];if( Calculate24Point( $a, $result, $ex, count($a) ) ){
    for( $i = 0; $i < count($result); $i++ ){
    echo "Answer:".$result[$i]."<br/>\r\n";
    }
    }else{
    echo "No Answer.";
    }
    ?>
    <form action="" method="POST">
    <input type="text" size="8" name="a1" value="<?php echo $_REQUEST['a1'];?>"/>
    <input type="text" size="8" name="a2" value="<?php echo $_REQUEST['a2'];?>"/>
    <input type="text" size="8" name="a3" value="<?php echo $_REQUEST['a3'];?>"/>
    <input type="text" size="8" name="a4" value="<?php echo $_REQUEST['a4'];?>"/>
    <input type="submit" value="Calculate"/>
    </form>这个代码我是网上弄的没有看懂?望高手指点
      

  5.   

    /**
     *可以在结果处加个去括号的处理
     *如果给的数字中有相等的,在计算中可能会出现除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;
                        }
                    }
                }
        }
    }