【LeetCode-263】Ugly Number(C++)

题目要求:写程序判断给出的数是不是ugly number。

                   Ugly number是一个质因数只包含2,3,5的正整数。比如6和8均是ugly number,而14不是ugly number,因为其质因子包含7。

                   注意:1通常被认为是ugly number。

解题思路:首先要了解什么是质因数,质因数是指能整除给定正整数的质数。听起来特别难理解,但是仔细想一下小学的时候学过的用短除法分解质因数的过程就应该好理解了,                       对正整数n分解质因数的过程就是找到一连串的质数,这些质数乘起来可以得到n。所以本题里面的ugly number就是这样的数:如果n是ugly number,则n可以只由若                       干个2,若干个3和若干个5相乘得到。

程序实现:

class Solution {
public:
    bool isUgly(int num) {
        if(num<=0)
           return 0;
        while(num%2 == 0){
            num=num/2;
        }
        while(num%3==0){
            num=num/3;
        }
        while(num%5==0){
            num=num/5;
        }
        if(num==1)
           return 1;
        else 
           return 0;
    }
};
总结:这道题AC的太顺利了,第一次提交的时候忘记加num>0的约束了,所以提示当输入为0的时候超时。然后加了一个if条件句就AC了!开心

你可能感兴趣的:(LeetCode,C++,算法)