ロングライン計算
白駿-ロングポジションの計算
問題の説明
質問する두 수 A, B를 입력받아, A+B, A-B, A×B를 구하는 프로그램을 작성하시오.
入力첫째 줄에 A가, 둘째 줄에 B가 주어진다. 각각의 수는 10진수로 1,000자리를 넘지 않으며 양수와 음수가 모두 주어질 수 있다.
しゅつりょく첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A×B를 출력한다.
각각을 출력할 때, 답이 0인 경우를 제외하고는 0으로 시작하게 해서는 안 된다(1을 01로 출력하면 안 된다는 의미).
入力例11
-1
サンプル出力10
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()!!
気持ちがいい~~~
Reference
この問題について(ロングライン計算), 我々は、より多くの情報をここで見つけました
https://velog.io/@qnrl3442/백준-긴자리-계산
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
두 수 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
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)
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)
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)
Reference
この問題について(ロングライン計算), 我々は、より多くの情報をここで見つけました https://velog.io/@qnrl3442/백준-긴자리-계산テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol