標準出力メニュー【2 * 2 の出力・3 * 3 の出力・九九表の出力・N * N の九九表の出力】
【STEP: 1】コード
const N = [[0, 8],[1, 3]]; // 配列の中に配列で2次元配列
for (let i = 0; i < 2; i++) {
console.log(N[i].join(' '));
}
とりあえず 2次元配列。こんな感じでOK?
【STEP: 2】コード
reader.on('close', () => {
const N = lines[0].split(' ').map(Number); // 入力値を数値の配列に変換
const N2 = []; // (N.splice(0, 3))を保存する配列
let i = N.length;
while (i > 0) {
const n = N.splice(0, 3); // 配列 N の要素を3つずつ切り取って…
N2.push(n); // N2 に追加
i = N.length; // 要素を3個切り取った後の N の要素数 で i を上書き
}
N2.forEach(n =>{ // N2 の各要素を n で受け取り…
console.log(n.join(' ')); // (' ')区切りで連結して表示
});
});
配列 N の要素を3つずつ切り取った配列を N2 に追加して 2次元配列 を生成しています。
【STEP: 3】コード
const A = []; // 九九表(2次元配列)
for (let i = 0; i < 9; i++) {
A.push([i +1]); // 九九表の格段の 1 列目([1]〜[9])
for (let j = 0; j < 8; j++) {
A[i].push(A[i][0] + A[i][j]); // 九九表の格段の 2〜9 列目
}
}
A.forEach(a => { // A の各要素を a で受け取り…
console.log(a.join(' ')); // (' ')区切りで連結して表示
});
2重ループ で A に
[i +1]
を push()
しながら A[i] に A[i][0]+A[i][j] を push()
して 2次元配列の九九表を生成。出力時に A の各要素を join(' ')
で連結しています。【FINAL】コード
reader.on('close', () => {
const N = Number(lines[0]);
const A = [];
for (let i = 0; i < N; i++) {
A.push([i + 1]);
for (let j = 0; j < N - 1; j++) {
A[i].push(A[i][0] + A[i][j]);
}
}
A.forEach(a => { // A の各要素を a で受け取り…
console.log(a.join(' ')); // (' ')区切りで連結して表示
});
});
【STEP: 3】のコードを汎用化。ループの条件を i < 9 から i < N へ。
コメント