Green Town 8OG

プログラミングの学習とか!

PythonでFizzBuzz問題を解いてみる

どうしてプログラマに・・・プログラムが書けないのか?というページに、Fizz-Buzz問題というのがあったので、初心者の自分に解けるかPythonでコードを書いてみた。

3ヶ月ほど前からプログラミングを勉強しはじめて、いまは色々な言語(の初歩の初歩レベル)をつまみながら勉強しているのですが、そのとっかかりとして一番最初に学んだのがPythonだったので、Pythonでやります! (てへ

 

設問は以下の通り↓

1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

 

脳みそフル稼働させて考えて・・・

  • 3の倍数は3で割り切れる数だ。
  • 5の倍数は5で割り切れる数だ。
  • 3と5の両方の倍数は、3で割り切れ、かつ5でも割り切れる数だ。

それをコードにすると・・・

for i in range(1,101):
    if(i % 3 == 0 and i % 5 != 0): # 3で割り切れるが5で割り切れない
		print("Fizz")
	elif(i % 5 == 0 and i % 3 != 0): # 5で割り切れるが3で割り切れない
		print("Buzz")
	elif(i % 3 == 0 and i % 5 == 0): # 3で割り切れ、かつ5で割り切れる
		print("FizzBuzz")
	else:
		print(i)

(i % 3 == 0 and i % 5 == 0)は、3と5の最小公倍数15を使って(i % 15 == 0)としてもいいでしょうか。

今回は頭に思い浮かんだコードをそのまま直にPythonで書いてみました。

でもたぶんもっと短くエレガントに書くやり方が他にあるはず!