數論的部分題目

2021-08-22 02:18:31 字數 1427 閱讀 8639

在做此類的問題時,要注意一下幾點。

注意事項:

資料的型別:正數、負數、小數,0.

資料的正確性:考慮錯誤輸入,錯誤輸入該如何處理

資料最大和最小範圍:int_max (2147483647,0x7fffffff);int_min (-2147483648, 0x80000000)

例題:

1. string to integer (atoi)字串轉為整數

2. reverse integer 翻轉乙個整數

3. power of two 判斷乙個int是不是2的冪

boolean ispoweroftwo(int n)

4. power of four 判斷乙個數是不是4的冪

boolean ispoweroffour(int num)

return false;

} return false;

}

5. number of 1 bits 某乙個數中bit1的個數

int numberof1(int n)

return ncount;

}

6. power of three  判斷乙個數是不是3的冪

性質:存在兩個整數數是3的冪,則其中較大的數對較小的數取模,結果為0。

boolean ispowerofthree(int n)

7. factorial trailing zeros 求n!末尾連續多少個0

num = a * 10^k = a*(5^k * 2^k),也就是說零的個數與2, 5 有關,而5的因子數要小於2,所以,只需要判斷包含

因子5的個數即可。

常規思路:

public int trailingzeros1(int n)

}return ncount;

}

高階方法:

分析:5   10  15  20  25  30   35 。。。 50  。。。75     n / 5

1   2     3   4    5     6     7。。。 。10  。。。15   n / 25

0  0     0    0    1     0     0 。。。。2。。。。3    

public int trailingzero2(int n)

return ncount;

}

8. 各個數字相加

9. missingnumber

10.素數

數論題目小記

題目描述 求n到n m內的素數個數 解題報告 數論題目有時複雜度看著很大,實際上並沒有那麼大 詳見 include define ll long long using namespace std const int n 1e6 3 ll n,m,pr n tot,s n bool vis n int...

一道數論題目

有100盞燈,編號1 100,初始時都是亮著燈。有一百個小孩,編號1 100。每盞燈對應乙個開關,按下時燈亮,再按則燈滅。讓這一百個小孩依次按開關,每個小孩只能按其編號倍數的開關。比如1號小孩可以按所有開關,2號小孩只能按編號為偶數的開關,以此類推。請問所有的小孩都按過開關以後 注意 每個小孩都必須...

數論題目整理(持續補充)

題目鏈結 對於2,不止有因子2還有其他素數因子,能達到的最大數為3 2 k3 2 k 3 2k 只有乘以3,k才有可能最大 對於x 2的數,不止有因子x,能達到的最大數為2 x k2 x k 2 xk 題目要求我們求出小於n的,不能被表示成素數的整數次冪的數,的最小公倍數 由算數基本定理,lcm p...