みねこあ

mineko. A! ―from mi-neko online.

2007-05-09

[][] FizzBuzz問題 18:45  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分くらいかかってたり (^^;) 。失格です。

参考

no title

Python は lambda 中に式しか書けないので、つらいのです。それを乗り越えるテクニック。

propellapropella 2007/05/10 01:11 なるほど。static キーワードが「無い」事に手がかりがあるわけですね。謎は深まりますな。

minekoaminekoa 2007/05/12 13:20 あれからもう少し調べてみたのですが、やっぱり何故そうしたかの理由はわからないですね。Cの何故なに が満載の 「エキスパート C プログラミング」ですら
「なんでstaticキーワードに、これほどまでに違った意味が持たされたのだろう? もし理由を知っている読者がいたら是非筆者にも教えて欲しい」
なんて書いてあります。う〜む...。

トラックバック - http://d.hatena.ne.jp/minekoa/20070509/1178703919
Connection: close