タイトル説明
これは、素因数2、3及び5の数だけが醜い(醜い数)と呼ばれている含まれています。それは7個の素因数が含まれているため、例えば6,8は、14醜いではなく、いくつかあります。伝統的に、我々は最初の醜い数として1を持っています。N醜い多数シーケンスを昇順シーク。
1 // 使用トラバース決意方法 2 クラスSolution01 { 3。 公共: 4。 INT GetUglyNumber_Solution(INT インデックス){ 5。 IF(指数< 1)戻り 0 ; 6。 INT CNT = 0 ; 7。 ため(INT I = 1 ; CNT <インデックス; ++ I) 8。 { 9。 IF (isChouShu(I)) 10 CNT ++ ; 11 IF(CNT == インデックス) 12 リターンI; 13 } 14 } 15 BOOL isChouShu(INT NUM) 16 { 17 ながら(%で2 == 0 ) 18 / = 2 。 19 一方(%で3 == 0 ) 20 、A / = 3 。 21 一方(%で5 == 0 ) 22 、A / = 5 。 23 リターン== NUM 。1 ; 24 } 25 }; 26である 27 28 //が格納されたデータメソッド使用 29 クラスSolution02 { 30 公共: 31である INT GetUglyNumber_Solution(INT インデックス){ 32 IF(指数< 1)戻り 0 ; 33である ベクトル< INT > Vを(インデックスは、0 ); 34である [V 0 ] = 1 ; 35 int型 P2、P3、P5、K = 1。; 36 P2 = P3 = P5 = 0 。 37 一方(K < 指数) 38 { 39 V [K ++] =分(分(Vの[P2の] * 2、V [P3] * 3)、V [P5] * 5 )。 40 一方(V [P2] * 2 <= V [K - 1 ])P2 ++ 。 41 一方(V [P3] * 3 <= V [K - 1 ])++ P3 。 42 一方(V [P5] * 5 <= V [K - 1 ])、P5 ++ 。 43 } 44 リターンV [索引- 1 ]。 45 } 46 }。