263. Ugly Number

时间:2021-04-12 11:42:59   收藏:0   阅读:0

思路:
如果一个数为丑数,那么自然会被2,3,5整除,最后得到1,那么我们一直循环判断n是否能被2,3,5其中一个整除,如果能 那么n=n/(2 or 3 or 5)。如果三个数都不能整除那么就返回false。如果循环结束还没有返回false,那么就直接返回true。
代码:

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

下面是递归写法

class Solution {
public:
    bool isUgly(int n) {
        bool res;
        if(n==0) return false;
        if(n==1) return true;
        if(n%2==0) res=isUgly(n/2);
        else if(n%3==0) res=isUgly(n/3);
        else if(n%5==0) res=isUgly(n/5);
        else return false;
        return res;
    }
};
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!