サンプルコードはPython。
FizzBuzz問題とは
1~100の数字が与えられ、
3で割り切れるなら Fizz を出力する。
5で割り切れるなら Buzz を出力する。
ただし、3と5で割り切れるときは FizzBuzz を出力する。
一般的な解法
def answer1(n):
ans = ""
if n % 15 == 0:
ans = "FizzBuzz"
elif n % 3 == 0:
ans = "Fizz"
elif n % 5 == 0:
ans = "Buzz"
else:
ans = str(n)
return ans
最初にFizz、次にBuzz を決定する解法
def answer2(n):
ans = ""
if n % 3 == 0:
ans += "Fizz"
if n % 5 == 0:
ans += "Buzz"
if ans == "":
ans = str(n)
return ans
この場合、15で割り切れるかを確認しなくて良い。
テスト
for i in range(1, 101):
print(answer2(i))
コード全体
def answer2(n):
ans = ""
if n % 3 == 0:
ans += "Fizz"
if n % 5 == 0:
ans += "Buzz"
if ans == "":
ans = str(n)
return ans
for i in range(1, 101):
print(answer2(i))
終わりに
15で割り切れるかを確認する解法は多くのWebサイトで紹介されている。
最初にFizz、次にBuzzの出力を決定するような解法はそんなに見かけないと思っていたが、「FizzBuzzBazz: How to answer and how NOT to answer | by Kevin Kim | ITNEXT」で紹介されていた。
Comments