小米OJ 第N個醜數
阿新 • • 發佈:2018-12-13
描述
把只包含因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。
輸入
輸入一個正整數N,0<N<10000
輸出
輸出一個正整數S,S為第N個醜數
輸入樣例
1 2 10
輸出樣例
1 2 12
#include <bits/stdc++.h> #define ll long long using namespace std; const int maxn = 10010; ll a[maxn], n; void Find(){ int id2 = 0, id3 = 0, id5 = 0; int id = 0; a[0] = 1; while(id < 10000){ ll t = min(a[id2]*2, min(a[id3]*3, a[id5]*5)); if(t == a[id2]*2) id2++; if(t == a[id3]*3) id3++; if(t == a[id5]*5) id5++; a[++id] = t; } } int main() { Find(); while(cin >> n){ cout << a[n-1] << endl; } return 0; }