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;
}