今天写代码的时候突然写到写一个阶乘的问题。我记得刚学的时候写过当时代码有十几行具体怎么写的忘了,今天写了下代码如下function numRank($n){
($n==1)?$result = 1:$result = $n*numRank($n-1);
return $result;
}
各位如果你们怎么写

解决方案 »

  1.   

    试了下 这样也行function numRank($n){
    return ($n==1)?$result = 1:$result = $n*numRank($n-1);
    }
      

  2.   

    那么也可以省略掉 $result =
      

  3.   


    不错 function numRank($n){
    return ($n==1)?1:$n*numRank($n-1);
    }
      

  4.   

    你这两个其实是一样的。 再缩短:function numRank($n){
        return ($n==1)? 1 : $n*numRank($n-1);
    }
      

  5.   

    求阶乘无需用递归function numRank($n){
        for($r=1;$n>1;$r*=$n--);
        return $r;
    }
      

  6.   

    开启gmp模块的话,直接可以用gmp_fact,还支持大数。详情看手册。
      

  7.   

    function numRank($n){
        ($n==1)?$result = 1:$result = $n*numRank($n-1);
        return $result;
    }
    中 ($n==1)?$result = 1:$result = $n*numRank($n-1); 的写法是不规范的
    应写作 $result = ($n==1)? 1:$n*numRank($n-1);
    去除 $result 直接返回,就是function numRank($n){
        return ($n==1)? 1 : $n*numRank($n-1);
    }
    进而
    function numRank($n){
       return $n==1 ? 1: $n*numRank(--$n);
    }