您的位置:首页 > 其它

【OJ练习】寻找丑数

2014-07-09 13:08 423 查看
描述:

丑数是指那些因子只含2,3,5的数,为方便起见,1也视为丑数,故1,2,3,4,5,6,8,9,10,12,15是最前面的丑数,请编写一个程序,输出第N(N<=300)个丑数。(n为输入值)

如果输入非法值,请返回 -1

一些转化的例子:

输入整数N = 5

输出的丑数是5

/* 功能:输入一个整数n,输出第n个丑数的值

* 输入:输入的整数

* 输出:无

* 返回:输出第N个丑数,如果N小于等于0返回-1

*/

int FindUglyNumber(int N)

{

int count=N;

int Num=1;

int Temp_Num;

if(N<1||N>300)

return -1;

if(N==1)

return 1;

while(count!=1)

{

Num++;

Temp_Num=Num;

while(Temp_Num!=1)

{

if(Temp_Num%2==0)

{

Temp_Num=Temp_Num/2;

}

else if(Temp_Num%3==0)

{

Temp_Num=Temp_Num/3;

}

else if(Temp_Num%5==0)

{

Temp_Num=Temp_Num/5;

}

else

break;

}

if(Temp_Num==1)

{

count--;

}

}

return Num;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: