码迷,mamicode.com
首页 > 其他好文 > 详细

【LeetCode从零单刷】Ugly Number

时间:2015-10-11 11:34:43      阅读:114      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!