昨天有亲戚小孩问我一个数学问题:
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);
?>有错,高手帮忙改一下
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);
?>有错,高手帮忙改一下
代码改为:
<?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++;
}
?>
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: 以上代码已经可以运行,你看一下结果是否是你想要的,代码太长,一次发不完,把三部分合并再运行,注意第二部分最后多了一个"?>",要去掉
<?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>这个代码我是网上弄的没有看懂?望高手指点
*可以在结果处加个去括号的处理
*如果给的数字中有相等的,在计算中可能会出现除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;
}
}
}
}
}