您的位置:首页 > 职场人生

剑指offer面试题34:丑数

2016-07-25 14:45 549 查看
#include "iostream"
using namespace std;
int Min(int num1,int num2,int num3)
{
int min = num1 < num2 ? num1 : num2;
min = min < num3 ? min : num3;
return min;
}
int GetUglyNumber(int index)
{
if (index <=0)
return 0;
int *uglyNumber = new int[index];
uglyNumber[0] = 1;
int nextUgly = 1;
int *mutily2 = uglyNumber;
int *mutily3 = uglyNumber;
int *mutily5 = uglyNumber;
int min = 1;
while (nextUgly<index)
{
min = Min(*mutily2 * 2, *mutily3 * 3, *mutily5 * 5);
uglyNumber[nextUgly] = min;
while (*mutily2 * 2 <= uglyNumber[nextUgly])
mutily2++;
while (*mutily3 * 3 <= uglyNumber[nextUgly])
mutily3++;
while (*mutily5 * 5 <= uglyNumber[nextUgly])
mutily5++;
nextUgly++;
}
int ugly = uglyNumber[nextUgly-1];
delete[] uglyNumber;
return ugly;
}

int main()
{
cout << GetUglyNumber(1500);
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ 剑指offer 面试题