首页 > 其他 > 详细

LeetCode: Ugly Number

时间:2015-08-19 13:33:24      阅读:128      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!