《leetCode》:Ugly Number
2015-11-13 20:31
405 查看
题目
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, 8 are ugly while 14 is not ugly since it includes another prime factor 7. Note that 1 is typically treated as an ugly number.
题目大意:判断一个数是否为丑数,丑数的定义为:只含有2/3/5因子的数就是丑数。
思路
如果num除以k(2/3/5)的余数为零,则num=num/k,然后继续判断。直至num==1或者是达到了终止条件。这里我们设置的终止条件为:像这样的判断进行32次就结束。bool isUgly(int num) { if(num<1){ return false; } if(num==1){ return true; } int count=32;//如果是一个丑数,while循环内部的代码最多执行32次。 while(count>0&&num!=1){ if(num%2==0){ num=num/2; } else if(num%3==0){ num/=3; } else if(num%5==0){ num/=5; } count--; } if(num==1){//如果是一个丑数,则进行上面的运算后,num将会变为1 return true; } return false; }
最后AC的结果如下:
遇到的问题
1、刚开始以为:num如果是丑数,出while循环之后,num将会变成零。因此就报了如下的错误。解决方法:经过分析,发现,如果num是一个丑数,则出while循环之后,num将会变成 1.因此将条件改下就OK了。
相关文章推荐
- 世界顶级黑客技术社区最新名单
- Linux下MySQL忘记root密码的解决办法
- iOS汉字转拼音(NSString+Characters)为NSString添加的类目
- 对于oom(内存溢出),图片加载方面,Dalvik,算法,自定义对内存方面很好的一片文章
- HDU1024(最大M子段和)
- Fragment和Fragment之间的数据传输
- 内存管理
- 【UML】用例图
- 一分钟认识GitHub
- eclipse 文本编辑器
- QT 和安卓的问题
- c++中的const
- [TwistedFate]MVC视图控制器
- hdu 1224
- git连接本地服务器教程
- 如何使用 UC浏览器开发者版 进行移动端调试
- scala学习计算开始基本语法2
- Tomcat原理剖析
- 电脑内部剖析
- iOS真机不能运行,模拟器可以