Re:FizzBuzzのプログラム書法
ockeghem(徳丸浩)の日記
>それと、ワンライナーたちは、「i <= 100」ではなくて「i<101」とする例がほとんどですが、こうする理由は1文字減るからでしょうね。ですが、書法としてはまずい書き方ですよね。
>FizzBuzz問題を想定どおり「入社試験」として出す場合であれば、私であれば「i < 101」を減点すると思います。
U-memo
>FizzBuzz は (1から) 100 まで処理するから i<=100
>(0から始まる)配列処理は100個処理するから i<100
徳丸浩の日記
>100回ループするのであれば、99や101ではなく、100と書こうよ。N回ループするのであれば、N-1やN+1ではなく、Nと書こうよということです。決して、「<ではなく<=」を使えという主張ではありません。
えーそうなの?
他の言語はいざしらず、Cでは「範囲に含まれる最小値」と「範囲に含まれない最大値」を常に使う書法がそれなりに市民権を得ていると思っていましたが。
つまり、1から始まるなら最大値は101になります。結果として不等号は常に<になります。
この書法を使うメリットは、一文字減るなどという些細なことではなく、
「最大値から最小値を引けば常にループ回数」になるということです。
(「1から」じゃなく「nから」と一般化してみてください)
参考:「Cプログラミングの落とし穴」A.コーニグ著 中村明訳の、3.6「数え上げと非対称な境界」
| 固定リンク

コメント