#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;
}
剑指offer面试题34:丑数
最新推荐文章于 2018-05-20 20:47:21 发布