LoginSignup
0
2

More than 5 years have passed since last update.

js FizzBuzz

Last updated at Posted at 2017-01-18

お題

FizzBuzz
・1からn(引数)までの数字を含む配列を返す
・3の倍数の場合、数字の代わりに"Fizz"を返す
・5の倍数の場合、数字の代わりに"Buzz"を返す
・3と5の倍数の場合、数字の代わりに"FizzBuzz"を返す
・n>0とする

function fizzbuzz(n){
//write your code.
}

出力結果 例

1~30

1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz", 13, 14, "FizzBuzz", 16, 17, "Fizz", 19, "Buzz", "Fizz", 22, 23, "Fizz", "Buzz", 26, "Fizz", 28, 29, "FizzBuzz"

つかったもの

while文
if文
push()

考え方

・while文でnまで処理を繰り返す
%を使って3と5で割り切れるか判定する
・割り切れた数字は変数にいれる
・if文で用意した配列にFizz Buzz 数字を入れる条件を設定する。
・配列を返しておわり

function fizzbuzz(n)
{
  var i = 1, arr = [];
  while(i <= n) {
    var fizz = (i % 3 === 0);
    var buzz = (i % 5 === 0);
    if(fizz || buzz) {
      arr.push((fizz?"Fizz":"") + (buzz?"Buzz":""));
    }
    else {
      arr.push(i);
    }
    i++;
  }
  return arr;
}

ES6


const fizzbuzz = () => {
    const fizz = 'fizz';
    const buzz = 'buzz';
    for (let i = 1; i < 100; i++) {
        if(i % 3 === 0 && i % 5 === 0){
            console.log(fizz + buzz);
        }else if(i % 5 === 0){
            console.log(fizz);
        }else if(i % 3 === 0){
            console.log(buzz);
        }else{
            console.log(i);
        }
    }
}

fizzbuzz();

その他のコード

function fizzbuzz(n){
  return Array.apply(null, new Array(n)).map(function(e, i){
    return (++i % 3 ? '' : 'Fizz' ) + (i % 5 ? '' : 'Buzz') || i;
  }); 
}

fizzbuzz(12);//[1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz"]

他にもコードが浮かんだ方、コメントお待ちしております。

0
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2