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.tar.gz" 是这个驱动程序的一个特定版本,版本号为5.1.40。这个压缩包包含了运行Java应用与MySQL数据库进行交互所需的类库和其他相关文件。 在Linux环境中处理这个压缩包,首先需要将...
`mysql-connector-java-5.1.27.jar`是这个驱动的一个特定版本,它允许Java开发者在他们的应用中无缝地访问和操作MySQL数据库。 MySQL连接器(JDBC驱动)是Java Database Connectivity (JDBC)的一部分,JDBC是Java ...
总之,"java-1.8.0-openjdk.linux.x86_64"是Linux系统上用于开发和运行Java应用的重要软件包,包含了Java开发和运行所需的所有基本组件,支持最新的Java 8特性,并针对64位系统进行了优化。安装和使用这个包,开发者...
`java-property-utils-1.9.jar` 可能用于读取自定义的配置文件,例如,你可能希望根据不同的环境设置不同的CORS策略,这时可以将策略写入一个属性文件,然后使用`java-property-utils`来读取并设置过滤器的参数。...
5.6.20 最新JDBC mysql-connector-java-5.1.32-bin.jar
JAVA连MySQL驱动mysql-connector-java-5.1.25.jar
在这个特定的版本——mysql-connector-java-5.1.40-bin.jar中,我们找到了这个连接器的5.1系列的一个稳定版本。 首先,让我们了解JDBC的作用。JDBC是Sun Microsystems(现为Oracle公司)为Java编程语言设计的一套...
mysql-connector-java-5.1.42-bin.jar 官网下载的驱动
mysql驱动包 mysql-connector-java-5.1.13-bin.jar 方便快捷获取。。。
连接MySQL所需要的最新jar包 mysql-connector-java-8.0.19.jar,喜欢最新版的可以下载使用
mysql-connector-java-5.1.30-bin.jar 最新的mysql jdbc
mysql数据库驱动包
java-1.8.0-openjdk.windows.x86_64位-win64位的openjdk
标题中的"jdk-6u45-linux-x64-rpm.bin"表明这是一款适用于Linux操作系统的64位Java Development Kit(JDK)的安装程序,版本号为6更新45(6u45)。在Linux环境中,RPM(Red Hat Package Manager)是一种广泛使用的...
ibm-java-sdk-8.0-5.11-x86_64-archive.bin ibm的jdk 8.0版本
本话题将深入探讨`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-connector-java-5.1.36.tar.gz`文件是一个针对Linux操作系统的压缩包,包含了运行在Linux环境下的MySQL Connector/J的具体版本5.1.36。 MySQL Connector/J遵循JDBC(Java Database Connectivity)标准,...
在本例中,我们关注的是"instantclient-basic-windows.x64-12.1.0.2.0.zip"这个压缩包,它是Oracle Instant Client的64位版本,适用于Windows 7操作系统。由于文件大小超过了某些平台的上传限制(60MB),因此它被用...
mysql-connector-java-5.1.24-bin.jar 连接mysql数据库
MySQL JDBC驱动包