C/C++教程

【LeetCode每日一题】丑数

本文主要是介绍【LeetCode每日一题】丑数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

丑数

1、题目描述

给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。

丑数 就是只包含质因数 2、3 和/或 5 的正整数。

示例1:

输入:n = 6
输出:true
解释:6 = 2 × 3

示例2:

输入:n = 8
输出:true
解释:8 = 2 × 2 × 2

示例3:

输入:n = 14
输出:false
解释:14 不是丑数,因为它包含了另外一个质因数 7 。

示例4:

输入:n = 1
输出:true
解释:1 通常被视为丑数。

2、算法思想

核心思想:
	1、通过题目描述,丑数就是能被2,3,5这三个数除断的数(1特殊情况除外)
	2、那么1除外的所有丑数都能被2,3,5整除,也就是说 丑数=(2^a)*(3^b)*(5^c)
具体实现:
	1、传递过来的n先除以2,除到不能再除了(也就是没有余数)
	2、再除以3,除到不能再除了
	3、再除以5,除到不能再除了
	4、如果最后n==1的话说明都除尽了,如果不等于1,说明没除尽。

3、代码实现

package com.java;

public class Day10_Solution {
    public boolean isUgly(int n) {
        int nums[] = {2,3,5};
        if (n == 0) {
            return false;
        }
        for(int i=0;i<nums.length;i++) {
            if(n == 1) {
                return true;
            }
            while (n % nums[i] == 0) {
                n = n/nums[i];
            }
        }
        return n == 1;
    }
}
这篇关于【LeetCode每日一题】丑数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!