FizzBuzz
FizzBuzzは数を数えるゲームです。プレイヤーは1から数え上げますが、一部の数は単語に置き換えられます。3で割り切れる数はFizz、5で割り切れる数はBuzz、3と5の両方で割り切れる数はFizzBuzzと言います。それ以外の数はそのまま言います。最初の15ターンは、1、2、Fizz、4、Buzz、Fizz、7、8、Fizz、Buzz、11、Fizz、13、14、FizzBuzzの順に進みます。
チェックする順序が、この問題の肝です。15は3で割り切れるため、先に3で割り切れるかを調べてすぐに"Fizz"を返すと、両方に当てはまるケースにたどり着けません。組み合わせたルールを最初に確認します。3と5の両方で割り切れる数は、ちょうど15で割り切れる数です。次に3、続いて5を確認し、最後に数そのものを返します。
古典的なバージョンでは、列全体を出力します。ここでは、一度に1つの数について答えます。nが与えられたら、ターンnでプレイヤーが言うものを返します。たとえば、ターン9は"Fizz"、ターン10は"Buzz"、ターン11は"11"です。
正の整数 n を受け取り、文字列を返す関数 fizzBuzz を作成してください。n が3と5の両方で割り切れる場合は "FizzBuzz"、3のみで割り切れる場合は "Fizz"、5のみで割り切れる場合は "Buzz"、それ以外の場合は10進数の文字列として表した n(たとえば "7")を返します。
制約: 1 <= n <= 10^9。
関数
- arg1integer
- 戻り値string
例
- 入力
- arg1 = 15
- 出力
- "FizzBuzz"
- 入力
- arg1 = 7
- 出力
- "7"
提出時に隠しテスト+11件
ヒント
1つずつ開いてください。開くたびに少しずつ答えに近づきます。
剰余演算子を使うと、ある数が別の数で割り切れるかどうかがわかります。
nは、nを 3 で割った余りが 0 のとき、ちょうど 3 で割り切れます。15について考えてみましょう。15は3でも5でも割り切れます。15が
"FizzBuzz"になり、"Fizz"にならないようにするには、どのチェックを先に実行すればよいでしょうか?まず15で割り切れるかをテストし、次に3、次に5で割り切れるかをテストします。どれにも当てはまらない場合は、数値を文字列に変換します。変換時にすべての桁が出力されるようにしてください。たとえば、10^9は科学表記ではなく
"1000000000"となります。
この問題の詳しい解説は準備中です。
似た問題
同じ考え方を使う問題です。2〜3問解くとパターンが身につきます。
Python
def fizzBuzz(n):
# ここにコードを書いてくださいケース1
ケース2
入力
arg1 = 15
期待値
"FizzBuzz"