代码之家  ›  专栏  ›  技术社区  ›  zadspecial

为什么大人物们不加入呢?

  •  0
  • zadspecial  · 技术社区  · 6 年前

    我做了一个NodeJS程序,它接受成对的整数( m, n )作为输入并打印 sum 它们的阶乘( facm, factn )在控制台上。我用了大整数。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 回复  |  直到 6 年前
        1
  •  0
  •   zadspecial    6 年前

    替换 var sum = factm.add(factn) 具有 var sum = factm.add(factn.toString()) 解决了这个问题。