1. 程式人生 > >劍指offer\c++

劍指offer\c++

把只包含因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。

int serchnum(vector<int>ivec,const int &num)
    {
        int length = ivec.size();
        int max = ivec[length - 1];
        for (int i = 0 ; i != length; i++)
            {
                if (ivec[i] * num > max)
                return
ivec[i]*num; } } int findmin(int num1,int num2,int num3) { if (num1 < num2) { if (num1 < num3 ) return num1; else return num3; }else { if (num2 <num3) return
num2; else return num3; } } class Solution { public: int GetUglyNumber_Solution(int index) { if (index == 0) return 0; vector<int> ivec ; ivec.push_back(1); for (int i = 1 ; i !=index;i++) { int
num1 = serchnum(ivec,2); int num2 = serchnum(ivec,3); int num3 = serchnum(ivec,5); int num = findmin(num1,num2,num3); ivec.push_back(num); } return ivec[ivec.size()-1]; } };