JS阶乘尾递归结果异常怎么处理?

// 尾递归方式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, 结果就开始异常, 使用非尾递归的方式计算出的结果才是正确的.
这是哪里出了问题?


当年话下
浏览 244回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP