0%

codewar-取小於number的數字中,可以被3以及5整除的數字的總和

題目:取小於number的數字中,可以被3以及5整除的數字的總和,如果是3跟5的公倍數,則只取一次。

1
2
3
4
5
6
7
8
9
def test(actual, expected)
Test.assert_equals(actual, expected)
end

Test.describe("example tests") do
test(solution(10), 23)
test(solution(20), 78)
test(solution(200), 9168)
end

解題方向:

  1. 先把1-number的數字抓出來變成一個陣列

    (註:後來發現其實可以用1…number只取小於的數字,不包含最大值)

    1
    2
    3
    def solution(number)
    (1..number - 1)
    end
  2. 要對每個元素做選取的動作,所以可以用select,然後取可以整除3或5的數字出來

    1
    2
    3
    def solution(number)
    (1..number - 1).select { |x| x % 3 == 0 || x % 5 == 0 }
    end
  3. 最後再用sum相加得到最後結果