FizzBuzz

条件分岐メニュー【3の倍数判定・2つの倍数判定・偶奇の判定・曜日の判定・ FizzBuzz】

【STEP: 1】コード

reader.on('close', () => {
   const N = Number(lines[0]);
   console.log(N % 3 ? 'NO' : 'YES');  // (条件 ? trueで実行 : falseで実行)
});
hogeちゃんの画像

三項条件演算子で出力を振り分けています。3で割った余りが0(false) なら ″YES″ で 1または2 (true) なら ″NO″ になります。

【STEP: 2】コード

reader.on('close', () => {
   const N = Number(lines[0]);
   console.log(N % 3 || N % 5 ? 'NO' : 'YES');  // (条件 ? trueで実行 : falseで実行)
});
hogeちゃんの画像

3 と 5 で割った余りのどちらか一方でも true (1〜4) なら ″NO″ です。

【STEP: 3】コード

reader.on('close', () => {
   const N = Number(lines[0]);
   const A = lines[1].split(' ').map(Number);
   let [even, odd] = [0, 0];  // 出力値(偶数の数,奇数の数)を 0 で初期化
   for (let i = 0; i < N; i++) {
      const a = A[i];
       a % 2 ? odd++ : even++;  // a % 2 が 1 なら odd++ : 0 なら even++
   }
   console.log(even, odd);
});
hogeちゃんの画像

a % 2 が false なら偶数 ・true なら奇数。

【STEP: 4】コード

reader.on('close', () => {
  const X = Number(lines[0]);
  const D = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sat'];
  console.log(D[( X - 1) % 7]);
});
hogeちゃんの画像
曜日名のパターンを配列にして (X – 1) % 7 の値で出力を振り分けました。

【FINAL】コード

reader.on('close', () => {
   const  N = Number( lines[0]);
   if (!( N % 3) && !( N % 5)) {
      console.log('FizzBuzz');
   } else if (!( N % 3)) {
      console.log('Fizz');
   } else if (!(N % 5)) {
      console.log('Buzz');
   } else {
      console.log(N);
   }
});
hogeちゃんの画像

条件の演算が 0 になった時 true を返すように (!) で 値を反転させています。

コメント