2012年9月6日木曜日

FizzBuzzの亜種問題を解く

White scenery @showyouに掲載されていた問題を解いてみることにしました。

邪法なのでこれから解こうという人の参考にはならないと思います。



問1の解答
https://gist.github.com/3656758

JavaScriptで解きました。

この手の問題では手垢のついた方法ですが、
正規表現を使っています。

4の倍数、100の倍数、400の倍数は、
実は正規表現に有利だったりします。
※おそらく最悪なのは7の倍数とかかな?

しかし通常の方法とは違い、
4桁年までしかサポートしていない欠点を持っています。

まあ頑張ればそこも直せるでしょうけど、
もうめどいんでいいです。



問2の解答
https://gist.github.com/3656792

Javaで解きました。

Java6から和暦をサポートしているので、
それさえ知っていれば赤子の手をひねるようなものです。

と言っても、
これはバージョン2だったりします。

最初のバージョンは日単位でループさせていたのですが、
デバッグ中にDAY_OF_YEARの仕様に気がついて年単位に修正しました。

その結果、
なんとif文が登場しないソースコードになりました。

え、卑怯?
車輪の再発明を防いだと言ってくださいよ。



こういう風にプライベートでも前向きにプログラミングに望める人なら、
才能は無くても上達できる可能性はあると思います。

…それが3分なのか3000時間なのかは分かりませんけどね。


0 件のコメント:

コメントを投稿