题目1:
分析:
判断是不是丑数,直接取余就可以了。
直接暴力法:超时。-----加个0和1的判断即可。
while(1)
{
if(n==1) return true;
int ok=1;
if(n%2==0)
{
ok=0;
n=n/2;
}
if(n%3==0)
{
ok=0;
n=n/3;
}
if(n%5==0)
{
ok=0;
n=n/5;
}
if(ok) return false;
}
虽然同为暴力,但人家的就很简单
while(1)
{
if(num%2==0) num/=2;
else if(num%3==0) num/=3;
else if(num%5==0) num/=5;
else return false;
if(num==1) return true;
}
问题二:
找第几个丑数,借助优先队列即可,懒得写了。