// 尾遞歸方式function factorial1(n,total) { if (n === 1) { return total;
} return factorial1(n - 1, n * total);
}// 普通遞歸方式function factorial2(n) { if (n === 1) { return 1;
} return n * factorial2(n - 1);
}console.log(factorial1(25,1)); // 1.5511210043330984e+25 console.log(factorial2(25)); // 1.5511210043330986e+25當(dāng)n的值比較大的時候比如25, 結(jié)果就開始異常, 使用非尾遞歸的方式計算出的結(jié)果才是正確的.這是哪里出了問題?
JS階乘尾遞歸結(jié)果異常怎么處理?
當(dāng)年話下
2018-07-12 15:10:32