Почему бигинты не добавляются? - PullRequest
0 голосов
/ 18 мая 2018

Я создал программу NodeJS, которая принимает пары целых чисел (m, n) в качестве входных данных и печатает sum их факториалов (facm, factn) на консоли.Я использовал библиотеку BigInteger.js, чтобы можно было вычислять, используя большие числа.

Но когда я ввожу 20 1, программа просто выводит значение 20!вместо 20!+1!Это не добавляет.Почему?

(По какой-то причине он работает, когда два входа одинаковы, например, 20 20. Он также работает, когда значения меньше.)

var input = require('fs').readFileSync('/dev/stdin', 'utf8');
var lines = input.split('\n');
var bigInt = require("big-integer");

for (var i = 0; lines[i] != ""; i++) { 
    var strings = lines[i].split(" ");
    var m = parseInt(strings[0]);
    var n = parseInt(strings[1]);
    var factm = bigInt(1);
    var factn = bigInt(1);
    for (var a = m; a != 0; a--) {
        factm = factm.multiply(a);
    }
    for (var b = n; b != 0; b--) {
        factn = factn.multiply(b);
    }
    var sum = factm.add(factn);
    console.log(sum.toString());
}

1 Ответ

0 голосов
/ 20 мая 2018

Замена var sum = factm.add(factn) на var sum = factm.add(factn.toString()) решает проблему.

...