题目来源
题目描述
题目解析
非递归
class Solution {
public:
bool isUgly(int num) {
if (num < 1) return false;
while (0 == num % 2) num /= 2; //质数:能不断被2整除
while (0 == num % 3) num /= 3;
while (0 == num % 5) num /= 5;
return 1 == num;
}
};
递归
1.判断n是否可以被2,3,5整除, 如果可以整除, 将n/2或n/3或n/5
2.重复第一步,直到n=1
3.判断最终的结果是否无为1,如果为1返回true,否则返回false;
class Solution {
public boolean isUgly(int n) {
if(n == 0) return false;
if(n == 1) return true;
if(n%2 == 0)
{
return isUgly(n/2);
}
else if(n%3 == 0)
{
return isUgly(n/3);
}
else if(n%5 == 0)
{
return isUgly(n/5);
}
return false;
}
}