freeCodeCamp/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/general-fizzbuzz.md

3.2 KiB

id title challengeType forumTopicId dashedName
5a23c84252665b21eecc7e78 一般的な FizzBuzz プログラム 5 302273 general-fizzbuzz

--description--

FizzBuzz プログラムの一般化されたバージョンを記述します。このバージョンは、倍数と単語を含むあらゆるリストに適しています。

これは基本的に、このゲームのルールをユーザーに提供する "fizzbuzz" 実装です。 これを実装する関数を作成します。 この関数は 2 つのパラメーターを取得する必要があります。

1つ目は、FizzBuzz ルールの配列です。 例: [ [3, "Fizz"] , [5, "Buzz"] ].

これは、数値が 3 の倍数の場合、 Fizz が出力され、5の倍数の場合、 Buzz が出力されることを示します。 両方の倍数であれば、文字列は配列で指定された順番で連結される必要があります。 このケースでは、数値が 3 と 5 の倍数の場合、 FizzBuzz となります。

2 つ目のパラメーターは、関数が上記のように文字列を返す対象となる数値です。

--hints--

genFizzBuzz は関数とします。

assert(typeof genFizzBuzz == 'function');

genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6) は文字列を返す必要があります。

assert(
  typeof genFizzBuzz(
    [
      [3, 'Fizz'],
      [5, 'Buzz']
    ],
    6
  ) == 'string'
);

genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 6)"Fizz"を返す必要があります。

assert.equal(
  genFizzBuzz(
    [
      [3, 'Fizz'],
      [5, 'Buzz']
    ],
    6
  ),
  'Fizz'
);

genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 10)"Buzz"を返す必要があります。

assert.equal(
  genFizzBuzz(
    [
      [3, 'Fizz'],
      [5, 'Buzz']
    ],
    10
  ),
  'Buzz'
);

genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 12) は、"Buzz"を返す必要があります。

assert.equal(
  genFizzBuzz(
    [
      [3, 'Buzz'],
      [5, 'Fizz']
    ],
    12
  ),
  'Buzz'
);

genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 13)"13"を返す必要があります。

assert.equal(
  genFizzBuzz(
    [
      [3, 'Buzz'],
      [5, 'Fizz']
    ],
    13
  ),
  '13'
);

genFizzBuzz([[3, "Buzz"],[5, "Fizz"]], 15)"BuzzFizz"を返す必要があります。

assert.equal(
  genFizzBuzz(
    [
      [3, 'Buzz'],
      [5, 'Fizz']
    ],
    15
  ),
  'BuzzFizz'
);

genFizzBuzz([[3, "Fizz"],[5, "Buzz"]], 15)"FizzBuzz"を返す必要があります。

assert.equal(
  genFizzBuzz(
    [
      [3, 'Fizz'],
      [5, 'Buzz']
    ],
    15
  ),
  'FizzBuzz'
);

genFizzBuzz([[3, "Fizz"],[5, "Buzz"],[7, "Baxx"]], 105)"FizzBuzzBaxx"を返す必要があります。

assert.equal(
  genFizzBuzz(
    [
      [3, 'Fizz'],
      [5, 'Buzz'],
      [7, 'Baxx']
    ],
    105
  ),
  'FizzBuzzBaxx'
);

--seed--

--seed-contents--

function genFizzBuzz(rules, num) {

}

--solutions--

function genFizzBuzz(rules, num) {
  let res='';
  rules.forEach(function (e) {
    if(num % e[0] == 0)
      res+=e[1];
  })

  if(res==''){
    res=num.toString();
  }

  return res;
}