N 個の実数の入力

標準入力メニュー【改行区切りでのN個の実数の入力・2 行目で与えられるN個の実数の入力 ほか】

【STEP: 1】コード (1)

reader.on('close', () => {
   const N = Number(lines[0]);
   for(let i = 1; i <= N; i++){
      const a = Number(lines[i]);  // 入力値を数値化して a で受け取り
      console.log(a);
   }
});
hogeちゃんの画像

N 個 の値を数値化しながら a で受け取り 同時進行で出力しています。

【STEP: 1】コード(2)

reader.on('close', () => {
   const N = Number(lines[0]);
   const A = new Array(N);  // N 個の 空要素を持つ 配列 A を宣言
   for (let i = 1; i <= N; i++) {
      const a = Number(lines[i]);  // 入力を a で受け取って…
      A[i - 1] = a;  // A[i - 1] に代入
   }
   A.forEach(a => {
      console.log(a);
   });
});
hogeちゃんの画像

要素数 N 個 の配列 A を宣言し for文中の a で入力値を受け取り A に代入。そして forEach() で出力しました。

【STEP: 2】コード(1)

reader.on('close', () => {
   const N = Number(lines[0]);
   const A = lines[1].split(' ').map(Number);
   for (let i = 0; i < N; i++) {
      console.log(A[i]);
   }
});
hogeちゃんの画像

lines[0] から要素数 N を取得し lines[1] から要素数 N 個の配列 A を生成。for文 で各値を出力しました。

【STEP: 2】コード(2)

reader.on('close', () => {
   const A = lines[1].split(' ').map(Number);
   A.forEach(a => {
      console.log(a);
   });
});
hogeちゃんの画像

各値をforEach() で出力しているので 要素数 N は取得せずに lines[1] のみ受け取っています。

【STEP: 3】コード (1)

reader.on('close', () => {
   const A = lines[0].split(' ').map(Number);
   const N = A.shift();  // A の先頭の値を切り取って N に代入
   for (let i = 0; i < N; i++) {
      console.log(A[i]);
   }
});
hogeちゃんの画像

入力は1行なので とりあえず半角スペースで区切って数値化した配列 A を生成。A の先頭の値を切り取り N に代入。for文 で N 個 の 値を出力しました。

【STEP: 3】コード (2)

reader.on('close', () => {
   const A = lines[0].split(' ').map(Number);
   A.shift();  // 先頭の値を削除
   A.forEach(a => {
      console.log(a);
   });
});
hogeちゃんの画像

forEach()を使えば配列の要素数に関わらず、全ての値にアクセスできるので、要素数 N を生成せずに 全ての値を出力しました。

【STEP: 4】コード (1)

reader.on('close', () => {
   const N = Number(lines[0]);
   const A = lines[1].split(' ').map(Number);
   for (let i = 0; i < N; i++) {
      console.log(A[i]);
   }
});
hogeちゃんの画像
入力条件が変わってますけど、【STEP: 2】のコードと同じでOKでした。

【STEP: 4】コード (2)

reader.on('close', () => {
   const A = lines[1].split(' ').map(Number);
   A.forEach(a => {
      console.log(a);
   });
});
hogeちゃんの画像
こちらも【STEP: 2】と同じコードになっています。

【FINAL】コード (1)

reader.on('close', () => {
   const A = lines[0].split(' ').map(Number);
   const N = A.shift();
   for (let i = 0; i < N; i++) {
      console.log(A[i]);
   }
});
hogeちゃんの画像

【STEP: 3】と同じコードで問題なく動作しました。

【FINAL】コード (2)

reader.on('close', () => {
   const A = lines[0].split(' ').map(Number);
   A.shift();
   A.forEach(a => {
      console.log(a);
   });
});
hogeちゃんの画像

こちらも【STEP: 3】のコピペです。

コメント