Bランクレベルアップメニュー【インクリメント・文字列の出力・文字列の分割・整数の足し算・足すか掛けるか】
Task
【インクリメント】コード
reader.on('close', () => {
let n = Number(lines[0]);
n++; // n = n + 1
console.log(n);
});
n の値を n++ で上書きして出力しました。
Task
【文字列の出力】コード
reader.on('close', () => {
const n = Number(lines[0]);
for (let i = 1; i <= n; i++) { // 1 ~ n までループ
const s = lines[i]; // 入力を s で受取って…
console.log(s); // 出力
}
});
文字列を s で受け取りながら for文 で n 行出力しました。
【文字列の分割】コード
reader.on('close', () => {
const S = lines[0].split(' '); // 入力を(' ')区切りので配列に変換→ S で受取り
S.forEach(s=>{ // S の各要素にアクセスして…
console.log(s); // 出力
});
});
一行の文字列を split(' ')
で半角スペースで区切った値を要素に持つ配列に変換。S で受け取り forEach
()で出力
【整数の足し算】コード
reader.on('close', () => {
const [a, b] = lines[0].split(' ').map(Number); // 入力を(' ')区切りので配列に変換→数値に変換→[a, b]で受取り
console.log(a + b); // a + b を出力
});
半角スペース区切りの数字を
split(' ')
で配列に変換後 map(Number)
で数値に変換した値を [a, b]
で受け取りました。そして a + b を出力しています。【足すか掛けるか】コード
reader.on('close', () => {
const n = Number(lines[0]);
let ans = 0; // 出力値を 0 で初期化
for (let i = 1; i <= n; i++) {
const [a, b] = lines[i].split(' ').map(Number);
ans += (a === b ? a * b : a + b); // a, b が同じなら a * b, 異なれば a + b を ans に加算
}
console.log(ans); // 出力
});
三項条件演算子を使いました。a === b なら a * b
さもなくば a + b を ans に加算して 出力しました。
コメント