醜い勝利数offer49

1.通常は醜いの数であるかを確認後、ナンバーワントラバーサルのですか?

// 顔質問49:ナンバー醜い
 // タイトル:我々は唯一の要因2、3と5を構成するには醜い数(醜い数)の数と呼ばれています。昇順探している
 // 1500の醜い大きな注文の数を。それが要因7が含まれているため、例えば6,8は、14醜いではなく、いくつかあります。
// 実際、我々は最初の醜い数として1を置きます。

書式#include <iostreamの> // コードアルゴリズム1 =================== ==================== =
 // 追加のメモリ、直接計算BOOL IsUgly(INTの数)// 判定は醜い数ません{
     ながら(数%2 == 0  / = 2 ;
     一方、(数%3 == 0  / = 3



;
     一方(個数%5。 == 0 
        の数 / = 5 ; 

    リターン(==番号1)?trueにfalseに; 
} 

int型 GetUglyNumber_Solution1(INT インデックス)
{ 
    IF(指数<= 0 戻り 0 ; 

    int型の数= 0 INT uglyFound = 0 ;
     一方(uglyFound <インデックスが)// カウントを終了する開始
    {
         ++数; 

        もし(IsUgly(数))
             ++ uglyFound。
    } 

    戻り値の数; 
}

 

ネットワークオフ2.牛がすごかったです

   INT GetUglyNumber_Solution(INT インデックス){
         IF(インデックス< 7。 リターン指数、
        ベクトル < INT > RES(インデックス); 
        RES [ 0 ] = 1 ; // 。と呼ばれる慣用醜い最初の数1 
        のint T2 = 0、T3 = 0、T5 = 0 、Iは、
         のための(I = 1 ; I索引を<++ I)
        { 
            RES [I] =分(RES [T2] * 2、分(RES [T3] * 3。、RES [T5 ] * 5));
            もし(RES [I] == RES [T2] * 2)T2 ++ もし(RES [I] == RES [T3] * 3)T3 ++ もし(RES [I] == RES [T5] * 5)T5 ++ 
        } 
        戻り RES [索引- 1 ]。
    
    }

 

おすすめ

転載: www.cnblogs.com/cgy1012/p/11402892.html