题目描述
丑数是指那些因子只含2,3,5的数,为方便起见,1也视为丑数,故1,2,3,4,5,6,8,9,10,12,15是最前面的丑数,请编写一个程序,输出第N(N<=300)个丑数。(n为输入值) <>
如果输入非法值,请返回 -1
一些转化的例子:
输入整数N = 5
输出的丑数是5
输入
5
输出
5
样例输入
5
样例输出
5
提示
地区
南京研究所
产品线
公共
阶段
招聘
难度
2级
public static int getChouShu(){
Scanner sc=new Scanner(System.in);
int n=0;
try{
n=sc.nextInt();//输入整数n,求第n个丑数
if(n>300)
return -1;//题中限制n<=300
}catch(InputMismatchException ex){
return -1;//输入不合法时返回-1
}
int number=0;
int findCount=0;//已找到丑数的个数
while(findCount<n){
int i=++number;
while(i%2==0){
i/=2;
}
while(i%3==0){
i/=3;
}
while(i%5==0){
i/=5;
}
if(i==1){
findCount++;
}
}
return number;//返回第n个丑数number
}