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

LeetCode: Ugly Number

时间:2015-08-19 13:33:56      阅读:400      评论:0      收藏:0      [点我收藏+]

标签:

题目链接https://leetcode.com/problems/ugly-number/

题目

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是自小丑数

最直接的代码如下

public class Solution {
    public boolean isUgly(int num) {
        if(num <= 0) 
            return false;
        if(num == 1) {
            return true;
         }
        while(num % 2 == 0) {
  	  num /= 2;
         }
  
        while(num % 3 == 0) {
  	  num /= 3;
         }
  
        while(num % 5 == 0) {
 	   num /= 5;
         }
  
        return num == 1 ? true : false;	
    }
}


结果超时。。。

然后改进了一下,AC。代码如下:

public class Solution {
    public boolean isUgly(int num) {
        if(num <= 0) 
            return false;
        if(num == 1) {
            return true;
        }
    	if(num % 5 == 0) {
    	    return isUgly(num / 5);
    	} else if(num % 3 == 0) {
    	    return isUgly(num / 3);
    	} else if(num % 2 == 0) {
    	    return isUgly(num / 2);
    	} else {
    	    return false;
    	}
		
    }
}

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

LeetCode: Ugly Number

标签:

原文地址:http://blog.csdn.net/yangyao_iphone/article/details/47777335

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!