美文网首页
丑数问题

丑数问题

作者: 光影墨辰 | 来源:发表于2017-07-16 19:41 被阅读0次

问题描述:

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

问题分析:

     第一个丑数为1,后面求丑数可根据思想,若p为丑数,则2*p,3*p,5*p均为丑数,换句话说,丑数可以通过已是丑数的数乘以2或3或5形成,但考虑到从小到大的问题。所以可以通过三个变量i2,i3,i5控制乘2、乘3和乘5的操作进行。

代码如下:

publicclassSolution {

publicintGetUglyNumber_Solution(intindex)

{

if(index<=0)

return0;

intresult[] =newint[index];

result[0] =1;

inti =1;

inti2=0,i3=0,i5=0;

while(i

{

inttemp = min(result[i2]*2,min(result[i3]*3,result[i5]*5));//每次只需比较*2和*3和*5中最小的

if(temp ==result[i2]*2) i2++;//这三句起到了遍历和去重的效果;

if(temp ==result[i3]*3) i3++;//比如2*3和3*2为同一个数,result[1] = 2,result[2]=3故此处操作

if(temp ==result[i5]*5) i5++;//可将result[1]*3和result[2]*2去掉重复。

result[i++] = temp;

}

returnresult[index-1];

}

publicstaticintmin(inta,intb)

{

ints = (a < b?a:b);

returns;

}

}

--daytwo

相关文章

  • 丑数问题

    问题描述: 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,...

  • Leetcode --- 丑数问题

    1.丑数(263 - 易) 题目描述:给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;...

  • 丑数

    问题描述:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含...

  • 263、丑数(E)

    判断一个正整数是否为一个丑数。丑数的定义是 1 为丑数,只包含 2、3、5的数就是丑数,比如 4,8,但是14 就...

  • golang实现剑指offer:动态规划题型

    丑数 LeetCode 面试题49:丑数 题目描述 我们把只包含因子 2、3 和 5 的数称作丑数(Ugly Nu...

  • 剑指offer学习笔记:5.3 时间效率与空间效率的平衡

    面试题34:丑数我们把只包含因子2,3,5的数称为丑数。求按从小到大排列的第1500个丑数。例如,6,8都是丑数,...

  • 每周 ARTS 第 11 期

    1. Algorithm 263. 丑数(简单) 描述: 编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数...

  • 丑数

    1.题目描述 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它...

  • 丑数

    丑数 设计一个算法,找出只含素因子2,3,5的第n小的数。 符合条件的数如:1, 2, 3, 4, 5, 6, 8...

  • 丑数

    题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包...

网友评论

      本文标题:丑数问题

      本文链接:https://www.haomeiwen.com/subject/izhxkxtx.html