为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

当年话下 2018-07-12 15:10:32
// 尾递归方式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, 结果就开始异常, 使用非尾递归的方式计算出的结果才是正确的.这是哪里出了问题?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 242 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信