我需要返回(1 / n!)*(1!+ 2!+ 3!+ ... + n!)的结果,n> = 1。 这是CodeWars的挑战!对于n = 8,下面的代码返回1.146652,但正确的结果是1.1466510000000001或1.146651。
如何正确截断此数字?
function factorial($val){
$factor = 1;
for($i=1;$i<=$val;$i++){
$factor *= $i;
}
return $factor;
}
function going($n) {
$val = 1/factorial($n);
$somatorio = 0;
for($i=1;$i<=$n;$i++){
$somatorio += factorial($i);
}
return round($val * $somatorio,6);
}