丑数

丑数

http://www.nowcoder.com/questionTerminal/6aa9e04fc3794f68acf8778237ba065b

把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
根据丑数定义,丑数应该是每一个丑数乘以2,3或5的结果。因此以第一个丑数1分别乘以2,3或5取最小值为下一个丑数,每一个丑数都是前面丑数乘以2,3,5得到。

class Solution {
public:
    int GetUglyNumber_Solution(int index)
    {
        if(index<=0)
            return 0;
        vector<int> pUglyNum(index,0);
        pUglyNum[0]=1;
        int nextUglyNum=1;
        int p2=0,p3=0,p5=0;
        while(nextUglyNum<index)
        {
            int min=Min(2*pUglyNum[p2],3*pUglyNum[p3],5*pUglyNum[p5]);
            pUglyNum[nextUglyNum]=min;
            while(2*pUglyNum[p2]==pUglyNum[nextUglyNum])
                p2++;
            while(3*pUglyNum[p3]==pUglyNum[nextUglyNum])
                p3++;
            while(5*pUglyNum[p5]==pUglyNum[nextUglyNum])
                p5++;
            nextUglyNum++;
        }
        return pUglyNum[nextUglyNum-1];
    }
    int Min(int N1,int N2,int N3)
    {
        int min1=N1<N2?N1:N2;
        return min1<N3?min1:N3;
    }
};
全部评论

相关推荐

02-16 01:39
南昌大学 Java
重剑Ds:感觉不太可能 后端都减飞了 根本不缺人
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
9842次浏览 92人参与
# 你的实习产出是真实的还是包装的? #
1768次浏览 41人参与
# 巨人网络春招 #
11305次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7489次浏览 43人参与
# 简历第一个项目做什么 #
31584次浏览 331人参与
# 重来一次,我还会选择这个专业吗 #
433389次浏览 3926人参与
# 米连集团26产品管培生项目 #
5783次浏览 214人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187019次浏览 1122人参与
# 牛客AI文生图 #
21411次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152303次浏览 887人参与
# 研究所笔面经互助 #
118877次浏览 577人参与
# 简历中的项目经历要怎么写? #
310102次浏览 4195人参与
# AI时代,哪些岗位最容易被淘汰 #
63464次浏览 805人参与
# 面试紧张时你会有什么表现? #
30490次浏览 188人参与
# 你今年的平均薪资是多少? #
213027次浏览 1039人参与
# 你怎么看待AI面试 #
179897次浏览 1237人参与
# 高学历就一定能找到好工作吗? #
64317次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76446次浏览 374人参与
# 我的求职精神状态 #
448005次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363287次浏览 2637人参与
# 腾讯音乐求职进展汇总 #
160598次浏览 1111人参与
# 校招笔试 #
470549次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务