- 2007-05-08 20:48:45 (Tue)
- たわごと
はてなブックマーク - どうしてプログラマに・・・プログラムが書けないのか?
ブックマークされた元の記事にも驚きましたが、そのなかで取り上げられていたFizzBuzzの方に興味が行ってしまい、即座にコードを書き始めてしまいました(^^;
リンク先に、小飼弾氏がperlの一行野郎を書き込んでいて、さすがだなぁと言うしか無いわけですが、元々の設問にはプログラミング言語の指定がなかったし、いかに短く書くかが趣旨ではないと思います。
というか、おそらく2分で紙に書けるのはアルゴリズムであって、実際のコードではないのではないかという気がしますが、どうでしょうか。
幾らなんでも私は2分で検証の時間がなくて無理です…あぁ、できる人は頭の中でテストまで出来ちゃうのかも。
仕事柄、他の方がどんな言語でどんなコードを書くかについて大変興味があります。
同じ答えでも、それを導き出す為の方法は一つではないので、そういうところがパズルを解くみたいで好きなのです。
とはいえ、こんな短くて判りやすい処理だと、初心者であってもプログラミングの訓練を受けた人ならば、大体同じようなアルゴリズムになるんでしょうけれど。
なーんて四の五の言ってないで、私の書いたソースを公開しましょうかね。
正直かなり恥ずかしいです。
一応デバッグもしましたけど、バグがあるかも知れませんしね(^^;
Option Explicit'FizzBuzz command prompt virsion
Const cFizz = "Fizz"
Const cBuzz = "Buzz"Dim i
Dim strFBFor i = 1 To 100
strFB = ""
If (i Mod 3 = 0) Then strFB = cFizz
If (i Mod 5 = 0) Then strFB = strFB & cBuzz
If strFB <> "" Then
WScript.StdOut.WriteLine strFB
Else
WScript.StdOut.WriteLine i
End IfNext
ああ、めっちゃ恥ずかしい。
WSHです。コマンドプロンプトで実行できます。
個人的に、15で割り切れるとき云々という考え方は好きじゃないので、こんなコードになりました。
ちなみに私は今perl使いではないので、小飼氏と張り合うとかそういう気は全く無ありませんし、多分現役perl使いだったとしても絶対敵わないですが、回答をWSHで書いていて「あぁー、やっぱスマートじゃないなぁ」と思ったのは確かです。
ま、今の私の場合、何の言語で書いても全くスマートじゃないのでここらで退散っと。
C= C= C= C=┌( ・_・)┘→→→
- Newer: やっぱり無能だった
- Older: USBメモリ≒百円ライター
Comments:0
Trackbacks:0
- TrackBack URL for this entry
- http://lillicat-kingdom.com/cgi/mt42/mt-tb.cgi/1294
- Listed below are links to weblogs that reference
- 無能さを曝け出してみる from ねこまんだら

