【发布时间】:2021-08-31 21:47:41
【问题描述】:
上周我参加了一次编程比赛。我使用 javascript 来解决问题,但我发现使用大整数时出错。首先,这是代码:
const solve03 = (n) => {
n++;
const times = Math.floor(n / 4);
return n - 2 * times;
};
console.log(solve03(87123641123172368));
console.log(solve03(81239812739128371));
用js的输出是:
43561820561586184
40619906369564184
我用 python 测试了相同的代码(支持大整数):
def solve03(n):
n += 1
times = n // 4
return n - 2 * times
print(solve03(87123641123172368))
print(solve03(81239812739128371))
输出是:
43561820561586185
40619906369564186
我需要一种方法来重写js中的代码来解决错误计算问题,另外,我知道有很多库支持大整数运算,但比赛不允许。
【问题讨论】:
-
你达到了 JS 的整数限制。为此请改用
bigInt
标签: javascript integer numbers