每日算法 ---- 求1!+2!+3!+......+20!的值

计算 求1!+2!+3!+......+20!的值

阶乘说明: 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!
阶乘表示: $n! = ($n-1)!* $n

 // 求1!+2!+3!+......+20!的值。
    public function main()
    {
        $re = 0;
        for ($i = 1; $i <= 20; $i++) {
            $re += $this->factorial($i);
        }
        return $re;
    }

    //非递归   循环求n!
    public function factorial($n)
    {
        $jc = 1;
        for ($i = 1; $i <= $n; $i++) {
            $jc *= $i;
        }
        return $jc;
    }

    //递归方式 求n!
    public function  reFactorial($i){
        if($i > 1 ){
            return $i = $i * $this->reFactorial($i-1);
        }else{
            return 1;
        }
    }

posted @ 2019-07-24 22:50  nihao_小白  阅读(1987)  评论(0编辑  收藏  举报