每日算法 ---- 求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;
}
}