昨天有亲戚小孩问我一个数学问题:
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);
?>有错,高手帮忙改一下
解决方案 »
- 求教,为什么wampserver安装目录下的wampmanager.conf没法修改?
- 怎样建立树型的目录结构
- set_magic_quotes_runtime 对哪些数据或行为产生作用?当magic_quotes_gpc为on的话,print 表单变量,必须手动stripslashes吗?
- 为什么我从PHP4.0.4升到PHP5.0.0后,有些程序就运行不了呢?
- php.ini问题
- 问题还是没解决?请高手出招!
- php中的session缺省保存多长时间?如何延长它?php中如何实现asp中response.end的功能??
- 在线等一个答案!
- 如何指定页面刷新???
- 为什么我的chw帮助文件打不开 ,并且告诉我appcrash 该怎么解决
- 请教一个问题
- 前台js获取不到ajax返回的数据,请高手指点?在线等待,谢谢.
代码改为:<?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++;
}
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: 以上代码已经可以运行,你看一下结果是否是你想要的,代码太长,一次发不完,把三部分合并再运行
<?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));
?>
可能的情况居然都写了下来
委屈了if else
/**
*可以在结果处加个去括号的处理
*如果给的数字中有相等的,在计算中可能会出现除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;
}
}
}
}
}