almost 2 years ago

醜陋的數字呀! 數字中有質因數2 3 5便判斷為醜陋的數,假設今天並沒有全部符合2 3 5代表並非醜陋數

而1,我們通常都會判定為醜陋的數。

public class Solution {
    public boolean isUgly(int num) {
        while (num >= 2) {
            if (num % 2 == 0) num /= 2;
            else if (num % 3 == 0) num /= 3;
            else if (num % 5 == 0) num /= 5;
            else return false;
        }
        return num == 1;
    }
}

程式碼解說:

通常我們1都醜陋數,因此我們從2開始算,每次運算我們都會讓num去取2 3 5的餘數,假設為0變取代目前的num,

這算是一種簡單的作法,如果使用for迴圈去算可能會需要很多時間,因此這樣的作法是比較正確的。

假設我們取到一個不屬於2 3 5的質因數,那麼我們當然就是口愛的數字惹,也將不必再運算,直接給他傳回去。

← [LeetCode] Sum of Two Integers [LeetCode] Same Tree (Java) →
 
comments powered by Disqus