fujithuro.log

プログラマーの雑多な書き残しです

1から100までの偶数の和を1行で求める

1から100までの偶数の和を1行で求めるっていうのをTwitterで見かけたので、Kotlinで書くとどうなるか考えた。


最初に浮かんだのはこれ。

(1..100).filter { it % 2 == 0 }.sum()

1から100までの偶数の和という日本語がそのままコードになった感じで一番素直かと。


こっちの方が短く書けてスッキリ。短いのは良いこと。

(2..100 step 2).sum()

でも奇数からスタートするとダメになるから、任意の数から任意の数までの偶数の和に変わると対応できないって意味で汎用性が低いかも。

要件に出てきた1,100以外の数値でrange作ってるのも個人的にちょっとイヤ。


こういうパターンもある。任意の数から100までの偶数の和みたいにstartが変わるだけなら、これで対応できる。

(100 downTo 1 step 2).sum()

題意を満たすだけなら、こういうのも有り。

(1..50).sum() * 2