LeetCode探索之旅(73)-263丑数

今天继续刷LeetCode,第263题,判断一个数是否是丑数。

分析:
前面有一个题目是输出n以内的所有丑数,这个是反过来判断输入的数是否是丑数。这种题目首先是分清楚概念,具体丑数的概念是什么,以及如何求的丑数。那么反过来判断一个数是否是丑数,就是判断这个数能否整除以2,3,5三个数,而不能被其他数整除。

问题:
1、面对一个问题,要一步一步分解;
2、Python中//与/的区别是:/表示浮点数除法,而//表示整数除法。

附上C++代码:

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

附上Python代码:

class Solution:
    def isUgly(self, num: int) -> bool:
        if num<=0:
            return False
        if num==1:
            return True
        if not num%2:
            return self.isUgly(num//2)
        elif not num%3:
            return self.isUgly(num//3)
        elif not num%5:
            return self.isUgly(num//5)
        else:
            return False

猜你喜欢

转载自blog.csdn.net/JerryZengZ/article/details/89226641