醜數 思維題

2021-10-23 01:11:22 字數 1299 閱讀 8237

醜數就是這個數的質因子只有2,3,5,7這四個,除此之外不再含有其它 別的質因子。 注意1也被認為是醜數.醜數的前20個為 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... ;

每行輸入乙個n,1 <= n <= 5842,n為0時輸入結束.

輸出相應的第n個醜數.

這道題是有簡單的做法

我們不妨直接乙個個的來確定答案,譬如說,ans[1] = 1這個是必要條件,就像數學歸納法中確定a(1)的做法是一樣的。

那麼,下一步一定是

以此類推,在**上是這樣寫到(因為我擔心我講不清楚):

inline void init()

}

好了,將答案預處理出來,剩下的就是o(1)的輸出了,如下:

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define lowbit(x) ( x&(-x) )

#define pi 3.141592653589793

#define e 2.718281828459045

#define inf 0x3f3f3f3f

#define half (l + r)>>1

#define lsn rt<<1

#define rsn rt<<1|1

#define lson lsn, l, mid

#define rson rsn, mid+1, r

#define ql lson, ql, qr

#define qr rson, ql, qr

#define myself rt, l, r

#define min_4(a, b, c, d) min(min(a, b), min(c, d))

using namespace std;

typedef unsigned long long ull;

typedef unsigned int uit;

typedef long long ll;

const int maxn = 5842;

ll ans[maxn + 1];

int p[4];

inline void init()

}int main()

return 0;

}

演算法題 醜數

2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第1500個醜數。所謂乙個數m是另乙個數n的因子,是指n能被m整除,也就是n m 0。根據醜數的定義,醜數只能被2 3和5整除。也就是說如果乙個數如果...

刷題 醜數提取及醜數判斷

把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。根據醜數的定義,我們知道醜數一定是由2 3 5乘積得到,可表示成如下公式 我們預設1是第乙個醜數,初始醜數序列為1,從1開...

LeetCode刷題 醜數

編寫乙個程式判斷給定的數是否為醜數。醜數就是只包含質因數 2,3,5 的正整數。示例 1 輸入 6 輸出 true 解釋 6 2 3 示例 2 輸入 8 輸出 true 解釋 8 2 2 2 示例 3 輸入 14 輸出 false 解釋 14 不是醜數,因為它包含了另外乙個質因數 7。說明 1 是醜...