✍️
備忘録:FizzBuzzを解いてみた
はじめに
最近、atCoderを始めました。
エンジニアとしては知っておいた方が良いコミュニティですが、あまり問題を解いたことがありませんでした。アルゴリズムの勉強にもなるらしく、習慣的にやってみようと思いました。定期的にコードと所感を書くことで、復習用の備忘録にしていきたいので、間違いあればご指摘ください。
では、見ていきましょう!
問題文
1から指定された数値までの整数について、次のルールに従って出力するプログラムを作成してください。
・数が3の倍数であれば「Fizz」と出力する。
・数が5の倍数であれば「Buzz」と出力する。
・数が3の倍数かつ5の倍数であれば「FizzBuzz」と出力する。
その他の数はその数自体を出力する。
制約:数値𝑛は 1 以上の整数です。
コード
Pythonで実装しました。
fizzbuzz.py
def fizzBuzz(n):
for i in range(1, n + 1):
if i % 3 == 0 and i % 5 == 0:
print("FizzBuzz")
elif i % 3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Buzz")
else:
print(i)
fizzBuzz(15)
入力値は15を想定しています。
結果は以下の通り。
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
解説
1.関数定義
まず、関数化します。入力値を引数として受け取るイメージです。
def fizzBuzz(n):
2.ループ処理
for i in range(1,n+1)
今回は問題文の通り1始まりなので、rangeのstartは1にしています。
rangeの引数については以下の記事を参考にしてください。
本来はrange(start, stop, step)となり、3つまで指定が可能みたいですね。
3.条件分岐
ルールに基づいてケース分けすると以下になります。
・3の倍数かつ5の倍数
・3の倍数
・5の倍数
・その他の整数
- 3の倍数かつ5の倍数
if i % 3 == 0 and i % 5 == 0:
print("FizzBuzz")
- 3の倍数
elif i % 3 == 0:
print("Fizz")
- 5の倍数
elif i % 5 == 0:
print("Buzz")
- その他の整数
else:
print(i)
まとめ
やっぱり、Pythonはシンプルで良いなぁ
Discussion