-1
コードを使用して、多数の間違った結果を取得します。NodeJS:算術級数は、反復
var sum_with_formula = function (n) {
return n/2*(n+1);
}
var sum_with_loop = function (n) {
var sum = 0;
for (var i=1; i<=n; i++) {
sum = sum + i;
}
return sum;
}
var n = 1000000000;
const assert = require('assert');
assert.equal(sum_with_formula(n), sum_with_loop(n));
結果:
assert.js:85
throw new assert.AssertionError({
^
AssertionError: 500000000500000000 == 500000000067109000
なぜ式によって反復して計算し、計算の違いはありますか?
しかし、n = 100000000の場合、結果は正しいです。 N = 200000000は、結果が間違っている場合
:私はNodeJSのv6.9.2を使用しています
AssertionError: 20000000100000000 == 20000000067108864
。