トピック:
n番目の醜い番号を検索するプログラムを書きます。
醜いは、素因数の数だけ2、3、5の正の整数で含有します。
例:
入力:N = 10
出力:12
説明:1、2、3、4、5、6、8、9、10、12はフロント数醜い10です。
説明:
図1は、醜いの数です。
nが1690以下です。
問題解決:
3ポインタを使用して
クラスソリューション{ 公共 のint nthUglyNumber(INT N-){ int型 MIN2 = 0 ; int型 MIN3 = 0 ; int型 min5 = 0 ; intです [] =結果新しい新しい INT [N-]; // いくつかの醜い格納するための結果 結果を[0] = 。1 ; のための(int型 Iは++; I <N-I = 1 ){ // * 3 2 * 5醜い数がまだ醜いの数である 整数分= Math.min(Math.min(結果[MIN2] * 2を結果[ MIN3] * 3)、* [min5]結果5。。); IF(分== * 2 [MIN2]結果){ MIN2 ++ 。 } であれば(分== [MIN3] * 3結果) MIN3 ++ 。 もし(MIN ==結果[min5] * 5 ) min5 ++ 。 その結果、[I] = 分。 } 戻り結果[N - 1 ]。 } }