一、介绍
1.题目描述
题目链接:https://leetcode-cn.com/problems/ugly-number/
给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。
丑数 就是只包含质因数 2、3 或 5 的正整数。
注意事项:
- 1 通常被认为是一个丑数
- 0和负数不是丑数
2.测试样例
1 # true
0 # false
6 # true
14 # false
8 # true
二、题解🟢
分别对2、3、5取余,看是否为0,并更新数值。当除到为1,则为丑数【1本身也是丑数】
如果不能被2、3、5整除,说明不是丑数
class Solution {
public:
bool isUgly(int n) {
while(n!=0){
if(n==1) return true;
if(n%2==0)n/=2;
else if(n%3==0)n/=3;
else if(n%5==0)n/=5;
else return false;
}
return false;
}
};

官网给出了更简洁的写法
参考链接:https://leetcode-cn.com/problems/ugly-number/solution/chou-shu-by-leetcode-solution-fazd/
class Solution {
public:
bool isUgly(int n) {
if(n<=0)return false;
vector<int> temp={2,3,5};
for(int i:temp){
while(n%i==0) n/=i;
}
return n==1;
}
};
LeetCode:判断丑数的C++题解
博客围绕LeetCode上判断丑数的题目展开。题目要求判断整数n是否为丑数,丑数是只含质因数2、3或5的正整数,1是丑数,0和负数不是。题解通过对2、3、5取余并更新数值,除到1则为丑数,不能整除则不是,还给出官网简洁写法参考。
3599

被折叠的 条评论
为什么被折叠?



