<?php
//随机5个数在1-36以内,要求5个数的和为100。看看执行时间
//function s($b){
   
    $a1=rand(1,36);
    $a2=rand(1,36);
    $a3=rand(1,36);
    $a4=rand(1,36);
    $a5=rand(1,36);
    //判断相加是否是100
    $a=$a1+$a2+$a3+$a4+$a5;
    if($a == $b){
        return array('$a1'=>"$a1",'$a2'=>"$a2",'$a3'=>"$a3",'$a4'=>"$a4",'$a5'=>"$a5");
        
    }else{
        s($b);
    }
}
$aa=s(100);//这步调用函数,为什么结果不会每次都输出数组呢?还要看运气才能输出?
print_r($aa);
echo microtime();
?>

解决方案 »

  1.   


    ……
        }else{
            return  s($b);
        }
    ……
      

  2.   

    //随机5个数在1-36以内,要求5个数的和为100。看看执行时间
    $a = array();
    for($i = 1; $i < 6; $i++){
    if($i == 5){
    $a[] = 100 - array_sum($a);
    }else{
    $a[] = rand(0, (100 - array_sum($a)));
    }
    }echo '<pre>';print_r($a);
    echo '<br>', array_sum($a);