Home > silly talk > 無能さを曝け出してみる

無能さを曝け出してみる  無能さを曝け出してみる

はてなブックマーク - どうしてプログラマに・・・プログラムが書けないのか?

ブックマークされた元の記事にも驚きましたが、そのなかで取り上げられていたFizzBuzzの方に興味が行ってしまい、即座にコードを書き始めてしまいました(^^;

リンク先に、小飼弾氏がperlの一行野郎を書き込んでいて、さすがだなぁと言うしか無いわけですが、元々の設問にはプログラミング言語の指定がなかったし、いかに短く書くかが趣旨ではないと思います。
というか、おそらく2分で紙に書けるのはアルゴリズムであって、実際のコードではないのではないかという気がしますが、どうでしょうか。
幾らなんでも私は2分で検証の時間がなくて無理です…あぁ、できる人は頭の中でテストまで出来ちゃうのかも。

仕事柄、他の方がどんな言語でどんなコードを書くかについて大変興味があります。
同じ答えでも、それを導き出す為の方法は一つではないので、そういうところがパズルを解くみたいで好きなのです。
とはいえ、こんな短くて判りやすい処理だと、初心者であってもプログラミングの訓練を受けた人ならば、大体同じようなアルゴリズムになるんでしょうけれど。

なーんて四の五の言ってないで、私の書いたソースを公開しましょうかね。
正直かなり恥ずかしいです。
一応デバッグもしましたけど、バグがあるかも知れませんしね(^^;

Option Explicit

'FizzBuzz command prompt virsion

Const cFizz = "Fizz"
Const cBuzz = "Buzz"

Dim i
Dim strFB

For 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 If

Next

ああ、めっちゃ恥ずかしい。

WSHです。コマンドプロンプトで実行できます。
個人的に、15で割り切れるとき云々という考え方は好きじゃないので、こんなコードになりました。

ちなみに私は今perl使いではないので、小飼氏と張り合うとかそういう気は全く無ありませんし、多分現役perl使いだったとしても絶対敵わないですが、回答をWSHで書いていて「あぁー、やっぱスマートじゃないなぁ」と思ったのは確かです。
ま、今の私の場合、何の言語で書いても全くスマートじゃないのでここらで退散っと。

C= C= C= C=┌( ・_・)┘→→→

Comments:0

Comment Form

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 ねこまんだら

Home > silly talk > 無能さを曝け出してみる

Search
CC Licence

Creative Commons License

This blog is licensed under a Creative Commons License.

Feeds
Counter

o-ume8 COUNTER

Return to page top