设共有40只腿 15只头
<?php
$a=40;
$b=15;
for($m=1;$m<=20;$m++){
$j=$m*2;
$a-=$j;
for($n=1;$n<=10;$n++){
$k=$n*4;
$a-=$k;
if($a==0&&($b-$m-$n=0))
{echo $m.$n;}}}
?>
这样写错误在?思路是蛮力算法
<?php
$a=40;
$b=15;
for($m=1;$m<=20;$m++){
$j=$m*2;
$a-=$j;
for($n=1;$n<=10;$n++){
$k=$n*4;
$a-=$k;
if($a==0&&($b-$m-$n=0))
{echo $m.$n;}}}
?>
这样写错误在?思路是蛮力算法
$b=15;function foo($a,$b) {
for($x = 1; $x <= 14; $x ++) {
$y = $b - $x;
if ($x * 4 + $y * 2 == 40) return array($x,$y);
}
return false;
}$result = foo($a,$b);
if (!$result) echo '无解';
else echo "兔:{$result[0]}鸡:{$result[1]}";
for($n=1;$n<=10;$n++) {
if(($m*2+$n*4) == 40 && ($m+$n)==15) {
echo "m=$m n=$n";
}
}
}
$b=15;
for($m=1;$m<=20;$m++){
$j=$m*2;
$a-=$j;
for($n=1;$n<=10;$n++){
$k=$n*4;
$a-=$k;
if($a==0&&($b-$m-$n==0)) //应为$b-$m-$n==0
{echo $m." ".$n;}//尝试失败,应该恢复$a的值
$a += $n*4;
}//恢复$a的值
$a += $m*2;
}
$a = 40;
$b = 15;
$x = $a / 2 - $b;
$y = 15 - $x;
echo "兔{$x}鸡{$y}";