0%

codewar-將數字從大到小排列

說明:將數字從大到小排列

題目:

1
2
3
Test.assert_equals(descending_order(0), 0)
Test.assert_equals(descending_order(1), 1)
Test.assert_equals(descending_order(123456789), 987654321)

初始狀態:

1
2
def descending_order(n)
end

解題方向:

  1. 因為題目裡面有兩個只有一位數,所以可以先下判斷,如果只有一位數,就回傳那個數字,這樣前兩個題目就過了。

    1
    2
    3
    4
    5
    def descending_order(n)
    if n < 10
    return n
    end
    end
  2. 如果要反轉數字的話,可以用digit來做,在不帶任何參數的情況下,可以將其反轉並形成一個陣列,再用sort排序,reverse反轉,後續join轉成字串,最後轉回數字

    1
    2
    3
    4
    5
    6
    7
    def descending_order(n)
    if n < 10
    return n
    else
    n.digits.sort.reversejoin.to_i
    end
    end