Java-NewCode-丑数

丑数
题目描述:

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


public class Solution {
    public int GetUglyNumber_Solution(int index) {
        if(index<=0)
            return 0;
        int [] uglys = new int[index];
        uglys[0] = 1;
        int count = 1;
        int p2 = 0;
        int p3 = 0;
        int p5 = 0;
        int min = 0;
        while (count < index) {
            min = Min(uglys[p2] * 2, uglys[p3] * 3, uglys[p5] * 5);
            uglys[count] = min;
            while (uglys[p2]*2 <= min)
                p2++;
            while (uglys[p3]*3 <= min)
                p3++;
            while (uglys[p5]*5 <= min)
                p5++;
            count++;
        }
        return uglys[index-1];
    }
        private int Min(int a, int b, int c){
        return  a < b ? (a < c ? a : c ) : ( b < c ? b : c );
        }
}

喜欢折腾代码的加群(群号:822286811)一起交流学习【Java、python、VBA、Shell、Linux、dos、数据分析、拆机、装系统技术交流群】
点击链接加入群聊【计算机技术交流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章