python丑数算法,java丑数算法

  python丑数算法,java丑数算法

  在主题描述中,只包含因子2、3、5的数称为丑数。比如6和8是很丑的数字,但14不是,因为它包含了因子7。习惯上认为1是第一个难看的数字。从小到大求第n个丑数。

  分析:这个难看的数也是无规律的,所以一般项的公式都解不出来。最暴力的方式就是一个一个的试。如果很丑,加一个;否则跳过第n个。但是,当然,你不能用这种方法。要是丑数字能连载就好了,下一个念头就是《邀剑》上的念头。我们可以列出在数组中发现的难看的数字。因为只有2、3、5三个因子,所以后面的丑数是前面的丑数乘以2、3、5得到的。另外,之前的丑号都是连载的,所以每次都需要乘以2,3,5。

  代码:

  类别解决方案{

  公共:

  intgetuglynumber _ solution(int index){

  If(索引=0))

  0;

  int t2=0,t3=0,t5=0,I=0;

  int * p=(int *)malloc)index * sizeof)int);

  p[0]=1;

  for(I=1;iindexI ) {

  p[I]=min(2*p[T2],min )5*p[t5],5 * p[t5]);

  wile(2*p[T2]=p[I])

  T2;

  wile(3 * p)T3)=p(I))))))wile(3 * p)T3)))wile(3 * p)T3)))wile(3 * p)T3)))652)

  T3;

  wile(5 * p)T5)=p(I))))))wile(5 * p)T5)))wile(5 * p)T5).

  t5;

  }

  int ugly=p[I-1];

  免费(p;

  还丑;

  }

  (;

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: