题目
解决代码及点评
/*
我们把只包含因子 2、3 和 5 的数称作丑数(Ugly Number)。例如 6、8 都是丑数,
但 14 不是,因为它包含因子 7。习惯上我们把 1 当做是第一个丑数。求按从小到大的顺序
的第 1500 个丑数。
*/
#include <iostream>
using namespace std;
bool IsUgly(int nNum)
{
while (nNum % 2 == 0)
{
nNum /= 2;
}
while (nNum % 3 == 0)
{
nNum /= 3;
}
while (nNum % 5 == 0)
{
nNum /= 5;
}
if (nNum == 1)
{
return true;
}
else
{
return false;
}
}
// 寻找丑数
int GetUglyNum(int nMaxNum)
{
int i = 1;
int nCount = 0;
// 简单的循环,判断
while (nCount < nMaxNum)
{
i++;
// 判断是不是丑数
if (IsUgly(i))
{
//cout<<i<<" ";
nCount++;
}
}
return i;
}
int main()
{
cout<<endl<<GetUglyNum(150)<<endl;
system("pause");
return 0;
}
代码下载及其运行
代码下载地址:http://download.csdn.net/detail/yincheng01/6704519
解压密码:c.itcast.cn
下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:
1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”
2)在下拉框中选择相应项目,项目名和博客编号一致
3)点击“本地Windows调试器”运行
程序运行结果