程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> [LeetCode從零單刷]Ugly Number

[LeetCode從零單刷]Ugly Number

編輯:C++入門知識

[LeetCode從零單刷]Ugly Number


題目:

 

Write a program to check whether a given number is an ugly number.

Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 6, 8 are ugly while 14 is not ugly since it includes another prime factor 7.

Note that 1 is typically treated as an ugly number.

解答:

如果某個數是丑數,那麼它一定可以不斷被 2 或者 3 或者 5 整除,然後除以之後的結果依然滿足丑數的條件

不斷循環,直到這個數不再變化。此時如果是 1 則是丑數,否則不是。

 

class Solution {
public:
    bool isUgly(int num) {
        if(num == 1 || num == 2 || num == 3 || num == 5)    return true;
        
        int tmp = 0;
        while(tmp != num)
        {
            tmp = num;
            if(num % 2 == 0)    num = num / 2;
            if(num % 3 == 0)    num = num / 3;
            if(num % 5 == 0)    num = num / 5;
        }
        
        if(tmp == 1)
            return true;
        else
            return false;
    }
};

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved