[263]Ugly Number
2015-10-04 12:18
323 查看
【题目描述】
Write a program to check whether a given number is an ugly number.
Ugly numbers are positive numbers whose prime factors only include
Note that
【思路】
根据题意有几种特殊情况药注意负数、0和1.只要在被除为1之前不能被2、3、5整除就不是。
【代码】
class Solution {
public:
bool isUgly(int num) {
if(num<=0) return false;
if(num==1) return true;
while(num!=1){
if(num%2==0) num=num/2;
else if(num%3==0) num=num/3;
else if(num%5==0) num=num/5;
else return false;
}
return true;
}
};
第一个是我的思路,用时8ms,后来看到一种思路和我相同,但写的比我更简洁的,用时只要4ms,值得借鉴。
bool isUgly(int num) {
if(num == 1){
return true;
}
if(num <=0){
return false;
}
while(num % 2 == 0){
num /= 2;
}
while(num % 3 == 0){
num /= 3;
}
while(num % 5 == 0){
num /= 5;
}
return num == 1;
}
Write a program to check whether a given number is an ugly number.
Ugly numbers are positive numbers whose prime factors only include
2, 3, 5. For example,
6, 8are ugly while
14is not ugly since it includes another prime factor
7.
Note that
1is typically treated as an ugly number.
【思路】
根据题意有几种特殊情况药注意负数、0和1.只要在被除为1之前不能被2、3、5整除就不是。
【代码】
class Solution {
public:
bool isUgly(int num) {
if(num<=0) return false;
if(num==1) return true;
while(num!=1){
if(num%2==0) num=num/2;
else if(num%3==0) num=num/3;
else if(num%5==0) num=num/5;
else return false;
}
return true;
}
};
第一个是我的思路,用时8ms,后来看到一种思路和我相同,但写的比我更简洁的,用时只要4ms,值得借鉴。
bool isUgly(int num) {
if(num == 1){
return true;
}
if(num <=0){
return false;
}
while(num % 2 == 0){
num /= 2;
}
while(num % 3 == 0){
num /= 3;
}
while(num % 5 == 0){
num /= 5;
}
return num == 1;
}
相关文章推荐
- 六种异常处理的陋习
- Linux - SVN下载项目
- iOS讲解迷惑深入浅出之开启子线程请求网络
- 多线程和多进程的区别(小结)
- Android Material Design Dialog
- C/C++中sizeof关键字总结
- AndroidUI 侧滑菜单 DrawerLayout的使用
- AndroidUI 侧滑菜单 DrawerLayout的使用
- DirectX11 模板
- JAVA IO处理流
- 不容忽视的网络安全
- linux 下 异步IO
- MeteoInfoLab脚本示例:创建netCDF文件(合并文件)
- 项目经验
- 无题(三):键值对的操作(运用指针)
- AM335x uboot spl分析
- Canvas API
- 类的继承与sizeof
- iOS开发——性能优化的25个建议和技巧
- VB2005 Project中Namespace的一个问题