首页 > 其他 > 详细

【LeetCode从零单刷】Ugly Number

时间:2015-10-11 11:33:55      阅读:208      评论:0      收藏:0      [点我收藏+]

题目:

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 整除,然后除以之后的结果依然满足丑数的条件

不断循环,直到这个数不再变化。此时如果是 1 则是丑数,否则不是。

class Solution {
public:
    bool isUgly(int num) {
        if(num == 1 || num == 2 || num == 3 || num == 5)    return true;
        
        int tmp = 0;
        while(tmp != num)
        {
            tmp = num;
            if(num % 2 == 0)    num = num / 2;
            if(num % 3 == 0)    num = num / 3;
            if(num % 5 == 0)    num = num / 5;
        }
        
        if(tmp == 1)
            return true;
        else
            return false;
    }
};

版权声明:本文为博主原创文章,转载请联系我的新浪微博 @iamironyoung

【LeetCode从零单刷】Ugly Number

原文:http://blog.csdn.net/ironyoung/article/details/49045933

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!