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