首頁 > php教程 > php手册 > 主體

php计算24点游戏

WBOY
發布: 2016-06-21 09:05:02
原創
967 人瀏覽過

求: 三个5,一个1组成的数学表达式的结果=24,   结果:(5-1/5)*5=24

 set_time_limit(0);
 $values = array(1, 5, 5, 5);
 $result = 24;

 $list = array();

 echo "

";<br> makeValue($values);<br> print_r($list);<p> function makeValue($values, $set=array())<br> {<br>  $words = array("+", "-", "*", "/");<br>  if(sizeof($values)==1)<br>  {<br>   $set[] = array_shift($values);<br>   return makeSpecial($set);<br>  }<br>  foreach($values as $key=>$value)<br>  {<br>   $tmpValues = $values;<br>   unset($tmpValues[$key]);<br>   foreach($words as $word)<br>   {<br>    makeValue($tmpValues, array_merge($set, array($value, $word)));<br>   }<br>  }<br> } <br> <br> function makeSpecial($set)<br> {<br>  $size = sizeof($set);</p><p>  if($size  {<br>   return makeResult($set);<br>  }</p><p>  for($len=3; $len  {<br>   for($start=0; $start   {<br>    if(!($set[$start-1]=="*" || $set[$start-1]=="/" || $set[$start+$len]=="*" || $set[$start+$len]=="/"))<br>     continue;<br>    $subSet = array_slice($set, $start, $len);<br>    if(!in_array("+", $subSet) && !in_array("-", $subSet))<br>     continue;<br>    $tmpSet = $set;<br>    array_splice($tmpSet, $start, $len-1);<br>    $tmpSet[$start] = "(".implode("", $subSet).")";<br>    makeSpecial($tmpSet); <br>   }<br>  }<br> } </p><p><br> function makeResult($set)<br> {<br>  global $result, $list;<br>     $str = implode("", $set);<br>  @eval("\$num=$str;");<br>  if($num==$result && !in_array($str, $list))<br>   $list[] = $str;<br> } </p><p>?><br></p>
            <p style="width:100%;text-align:center;margin:10px 0">

<br>
<br>

</p><p style="width:100%;text-align:center;margin:10px 0">

            </p><p class="clear"></p>

           
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板