在做此類的問題時,要注意一下幾點。
注意事項:
資料的型別:正數、負數、小數,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...