第82回【JavaScript】とても大きな数値の入力、とても小さな数値の入力

現在取り組んでいるのは、paiza ラーニング問題集「データセット選択メニュー」になります。

はじめに

猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。

JavaScript をゼロから勉強してみよう、のコーナー 82 回目です。

終業時に翌日やるべきことをまとめておきます。始業時に、前日まとめておいたやるべきことリスト以外に緊急でやるべきことはないか確認します。これらは、裏紙に手書きでやることが多いです。思いついたことをざっくばらんに書きだしておいて、終わったものは二重線で消します。個人的なやることリストはこれで十分だと思っています。

それでは、今日も頑張ってみようと思います。

とても大きな数値の入力 (paizaランク C 相当)

とても大きな数値 N が与えられます。N をそのまま出力してください。


入力される値

N

入力値最終行の末尾に改行が1つ入ります。


期待する出力

N をそのまま出力してください。

N

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

・ N は整数
・ 0 ≦ N ≦ 10^1,000


入力例

813

出力例

813

JavaScript で扱うことが出来る最大値は、9223372036854775807 とのこと。文字列として受ければ良いのだろうか。模範解答がないのでこれでいいのかどうかわからない。

JavaScript
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = [];
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
  const n = lines[0];
  console.log(n);
});
Python
N = int(input())
print(N)

とても小さな数値の入力 (paizaランク C 相当)

とても小さな数値Nが与えられます。そのまま出力してください。


入力される値

N

入力値最終行の末尾に改行が1つ入ります。


期待する出力

N をそのまま出力してください。

N

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

・ N は実数
・ 0 ≦ N < 100
・ N は高々小数第 100 位まで与えられる


入力例

8.13

出力例

8.13

これも、文字列として受ける方法だろうか。

JavaScript
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = [];
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
  const n = lines[0];
  console.log(n);
});
Python
N = input()
print(N)

最後に

扱うことが出来る最大値や表現することが出来る小数や、今回いろいろ調べたのだけれど、結局のところ、どのように書くのが正解か、というところまでは理解が及ばなかった。

力技で文字列として扱ってしまえば、どうとでもなるけれど、では、その値を利用して計算をするとなると、なんかいろいろと面倒そうな気がする。もっと学習しなければ。

引き続き、よろしくお願いいたします!

Python の第82回はこちら