问题描述
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数
思路分析
由丑数的定义知道丑数只有以上三个因子,所以在排序的丑数列表中,后面的某个丑数一定是前面某个丑数乘以2或3或5的结果,所以我们以这三个因子的到的丑数进行排序,把最小的丑数更新到丑数列表中,如果刚好是丑数中的最小值,则把该数对应的下标加1,然后继续寻找下一个丑数
码上有戏
|
|
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数
由丑数的定义知道丑数只有以上三个因子,所以在排序的丑数列表中,后面的某个丑数一定是前面某个丑数乘以2或3或5的结果,所以我们以这三个因子的到的丑数进行排序,把最小的丑数更新到丑数列表中,如果刚好是丑数中的最小值,则把该数对应的下标加1,然后继续寻找下一个丑数
|
|
快乐源于分享,总结溢于提高
热评文章