FizzBuzz問題
どうしてプログラマに・・・プログラムが書けないのか? を読んで、書かずには居られない衝動にかられて書きました。
def FizzBuzz(): for i in range(1, 100 +1): buf = "" if not i % 3 : buf += "Fizz" if not i % 5 : buf += "Buzz" if buf == "" : buf = str(i) print buf
なんとか2分以内に書けました。あ〜、よかった。
しかし、これだけでは格好悪いのでワンライナで書いてみます。
print [((not i % 15) and 'FizzBuzz') or ((not i % 3) and 'Fizz') or ((not i % 5) and 'Buzz') or i for i in range(1,101)]
・・・・こちらは書くのに 20分くらいかかってたり (^^;) 。失格です。