// 尾遞歸方式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當n的值比較大的時候比如25, 結果就開始異常, 使用非尾遞歸的方式計算出的結果才是正確的.這是哪里出了問題?
JS階乘尾遞歸結果異常.
慕森王
2019-03-20 15:11:26