public class UglyNumber {
/**
* 64.查找第N个丑数
具体思路可参考 [url] http://zhedahht.blog.163.com/blog/static/2541117420094245366965/[/url]
*
题目:我们把只包含因子
2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。
*/
public static void main(String[] args) {
UglyNumber un=new UglyNumber();
int n=50;
int re=un.findNthUglyNumber2(n);
System.out.println(re);
}
public int findNthUglyNumber1(int n){
int count=0;
int i=1;
while(count<n){
if(isUglyNumber(i)){
count++;
if(count==n){
return i;
}
}
i++;
}
return -1;
}
public boolean isUglyNumber(int x){
while(x%2==0)x/=2;
while(x%3==0)x/=3;
while(x%5==0)x/=5;
return x==1?true:false;
}
//like finding a SuShu/PrimeNumber
public int findNthUglyNumber2(int n){
int re=-1;
int[] a=new int[n];
a[0]=1;
int p2=0,p3=0,p5=0;
int i=1;
while(i<n){
a[i]=min(a[p2]*2,a[p3]*3,a[p5]*5);
while(a[p2]*2<=a[i])p2++;
while(a[p3]*3<=a[i])p3++;
while(a[p5]*5<=a[i])p5++;
i++;
}
re=a[i-1];
return re;
}
public int min(int a,int b,int c){
return (a<b?a:b)<c?(a<b?a:b):c;
}
}
分享到:
相关推荐
本文将深入探讨这两个文件:"mysql-connector-java-5.1.40.zip" 和 "mysql-connector-java-5.1.10.jar",以及它们在Java开发中的作用。 首先,`mysql-connector-java-5.1.40.zip` 是一个压缩文件,包含了MySQL ...
"mysql-connector-java-5.1.40.tar.gz" 是这个驱动程序的一个特定版本,版本号为5.1.40。这个压缩包包含了运行Java应用与MySQL数据库进行交互所需的类库和其他相关文件。 在Linux环境中处理这个压缩包,首先需要将...
这个压缩包 "selenium-java-2.47.1.zip" 包含了Selenium的Java版本,具体是2.47.1的更新,发布于2015年8月。这个版本在当时是一个稳定且广泛使用的版本,它提供了丰富的API,支持多种浏览器,并且可以与各种测试框架...
这是MySQL最新的jar,mysql-connector-java-8.0.18.jar
`java-property-utils-1.9.jar` 可能用于读取自定义的配置文件,例如,你可能希望根据不同的环境设置不同的CORS策略,这时可以将策略写入一个属性文件,然后使用`java-property-utils`来读取并设置过滤器的参数。...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
最新版linux graalvm-ce-java17-linux-amd64-22.3.2.tar.gz最新版linux graalvm-ce-java17-linux-amd64-22.3.2.tar.gz最新版linux graalvm-ce-java17-linux-amd64-22.3.2.tar.gz
安装包,亲测可用
这个"mysql-connector-java-5.1.45-bin.jar"文件是该驱动的一个特定版本,即5.1.45版。这个版本是纯净且正版的,适合于Java开发者在他们的项目中直接集成使用。 在Java编程中,为了连接到MySQL数据库,我们需要一个...
离线安装包,亲测可用
在这个特定的版本——mysql-connector-java-5.1.40-bin.jar中,我们找到了这个连接器的5.1系列的一个稳定版本。 首先,让我们了解JDBC的作用。JDBC是Sun Microsystems(现为Oracle公司)为Java编程语言设计的一套...
mysql驱动包 mysql-connector-java-5.1.13-bin.jar 方便快捷获取。。。
`mysql-connector-java-8.0.22.jar` 是MySQL公司提供的Java版ODBC驱动程序,主要用于Java应用程序连接到MySQL数据库。 MySQL的ODBC驱动在Java中的应用主要是通过JDBC(Java Database Connectivity)实现的,JDBC是...
mysql-connector-java-5.1.30-bin.jar 最新的mysql jdbc
mysql-connector-java-5.1.7-bin.jar
本话题将深入探讨`hibernate-c3p0-4.2.4.Final.jar`、`c3p0-0.9.2.1.jar`以及`mchange-commons-java-0.2.3.4.jar`这三个库在Java中的作用,特别是在Hibernate框架中的应用。 首先,`hibernate-c3p0-4.2.4.Final.jar...
mysql数据库驱动包
对于其他操作系统,如Linux或macOS,开发者可能需要寻找其他跨平台的解决方案,如Java的`javax.speech`包(但该包在Java 9后已被废弃)或使用第三方库如FestVoicerecognition。 总的来说,Jacob 1.20提供了Java开发...
标题中的“eclipse-java-linux-gtk-x86_64.tar.gz”指示这是一个为Linux操作系统设计的64位版本Eclipse集成开发环境(IDE),基于GTK+图形库。Eclipse是一款广泛使用的开源软件,主要用于Java编程,但也支持其他语言...
总之,JDK 11.0.18是Windows 64位系统上的一个强大开发工具,提供了一整套开发、测试和运行Java应用程序所需的功能。通过这个最新的发行版,开发者可以充分利用64位系统的资源,同时享受到Java 11带来的各种新特性和...