Ad
  • Custom User Avatar

    My code (arr is array of native BigInt):

      console.info("My number as BN:     " + BN(arr[0] * arr[0] + arr[1] * arr[1]).toFixed());
      console.info("My number as BigInt: " + (arr[0] * arr[0] + arr[1] * arr[1]));
    

    Output:

    Testing  [
      10, 7,  5,  5, 3, 2,  7, 6, 5,  9,
      10, 2,  6,  7, 2, 9, 10, 8, 8,  1,
      10, 8,  8,  6, 5, 6,  4, 5, 9,  9,
       4, 8, 10, 10, 4, 5,  7, 6, 6, 10
    ]
    My number as BN:     352198124718383079462822912000000000000
    My number as BigInt: 352198124718383079462822912000000000000
    Actual          6211882367758080000,17709055371970560000
    Possible expect 15840161589507840000,10064164423173120000
    Product to get 3.52198124718383079462822912e+38
    Your A*A + B*B 3.52198124718383079462822912e+38
    Correct
    

    As you see, BN.toFixed is able to get accurate representation.

  • Custom User Avatar

    Why not print BigInts as strings, then? Is it difficult to convert bigint to string and display it?

  • Custom User Avatar

    Not easy (because Bignumber.js doesnt't display well very big numbers) but I'll try to explain that your result is wrong.
    with JS

    you: A = 3; B = 38575890503412110
    me : A = 20534466401280000; B = 32656316659200000
    your product: 1.488099328131240613479552494652109e+33
    my   product: 1.4880993281312406429302784e+33
    

    They seem pretty close.
    with Python or another language with native big integers:

    you: A = 3; B = 38575890503412110
    me : A = 20534466401280000; B = 32656316659200000
    your product: 1,488,099,328,131,240,613,479,552,494,652,109
    my   product: 1,488,099,328,131,240,642,930,278,400,000,000
    mine - your =                        29,450,725,905,347,891 ~= 2.9450725905347892e+16
    

    I expect my answer is clear enough, if not please tell.

    I looked at your code and trie it and unfortunately I am sorry to think that you are not in the right way.

    Edit: It seems you now Python so you can try it on this kata and have no problem with big integeers.