ロングライン計算


白駿-ロングポジションの計算


問題の説明


質問する
두 수 A, B를 입력받아, A+B, A-B, A×B를 구하는 프로그램을 작성하시오.
入力
첫째 줄에 A가, 둘째 줄에 B가 주어진다. 각각의 수는 10진수로 1,000자리를 넘지 않으며 양수와 음수가 모두 주어질 수 있다.
しゅつりょく
첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A×B를 출력한다. 
각각을 출력할 때, 답이 0인 경우를 제외하고는 0으로 시작하게 해서는 안 된다(1을 01로 출력하면 안 된다는 의미).
入力例1
1
-1
サンプル出力1
0
2
-1

送信


私は最初に次のコードを作成して提出しました.
const fs = require('fs')
const input = fs.readFileSync('/dev/stdin').toString().split("\n")
var a = paresInt(input[0])
var b = parseInt(input[1])
console.log(a+b)
console.log(a-b)
console.log(a*b)
しかし、誰かが間違っていたのでBigIntで以下の内容を提出しました.
const fs = require('fs')
const input = fs.readFileSync('/dev/stdin').toString().split("\n")
var a = BigInt(input[0])
var b = BigInt(input[1])
console.log(a+b)
console.log(a-b)
console.log(a*b)
しかし、間違っているとも言われています.
いったい何か問題がありますか.どう考えても思い出せない
自分では解けないし、グーグルで検索するたびに玄太が来ますが、やはり憂鬱になります.
Google検索の結果、以下のコードで提出したのが正しいことがわかりました.
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n").map(BigInt);
let answer = input[0] + input[1] + '\n';
answer += input[0] - input[1] + '\n';
answer += input[0] * input[1];
console.log(answer)
問題部分に出てくる数字の前に0がないとちょっとおかしいですが、それが原因のようです.
私が書いたコードは0を数字の前につけるべきです.
どうして前に0があるのか、いくら調べても分からない.
問題を解くたびに後ろめたい気持ちになるが、新しい情報を知るようになる.
ほんとうにばかだ
この前、なぜTOStringをしたのかと聞かれて、やっと分かりました.
私は自分でノードファイルを作って、撮って、BigIntで受け取って、後ろにnを追加しました.
だからtoString()をしてnが消えた

BigIntで数字を変換し、後にnを加える
だからそれをtoString()!!
気持ちがいい~~~