丑数

题目描述
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。

import java.util.ArrayList;

public class Solution {
    
    public int GetUglyNumber_Solution(int input) {
        
        if(input == 0)
            return 0;
        ArrayList<Integer> array = new ArrayList<Integer>();
        int n2 = 1;
        int m2 = 0;
        int n3 = 1;
        int m3 = 0;
        int n5 = 1;
        int m5 = 0;
        array.add(1);
        int n = 1;
        while(n < input){
            
            int min = Math.min(n2*2, Math.min(n3*3, n5*5));
            array.add(min);
            if(n2*2 <= min) {
                
                m2 ++;
                n2 = array.get(m2);
            }
            if(n3*3 <= min) {
                
                m3 ++;
                n3 = array.get(m3);
            }
            if(n5*5 <= min) {
                
                m5 ++;
                n5 = array.get(m5);
            }
            n ++;
        }
        return array.get(input - 1);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 丑数 题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因...
    echoVic阅读 4,123评论 0 1
  • 题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。求按从小到大的顺序的第1500个丑数。习惯...
    qmss阅读 4,988评论 0 0
  • 算法是本人的薄弱项,今天开始,尽量抽出时间去学一些算法,然后进行归纳总结,将学习的过程记录于简书,希望对自己是一种...
    Goplayer王布斯阅读 4,440评论 0 1
  • 题目描述把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因...
    quiterr阅读 2,256评论 0 0
  • 题目描述把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因...
    juexin阅读 1,283评论 0 0

友情链接更多精彩内容