程式設計小技巧

2021-07-04 11:51:58 字數 499 閱讀 4368

1 判斷奇數:if(n & 0x1)  或用用 x % 2 != 0,不要用 x % 2 == 1,因為x可能是負 數。 

2 在判斷兩個浮點數 a 和 b 是否相等時,不要用 a==b,應該判斷二者之差的絕對值 fabs(a-b) 是否小於某個閾值,例如 1e-9

3 用 char 的值作為陣列下標(例如,統計字串中每個字元出現的次數),要考慮到 char 可能是負數。有的人考慮到了,先強制轉型為 unsigned int 再用作下標,這仍然 是錯的。正確的做法是,先強制轉型為 unsigned char,再用作下標

4 stl相關:

(1)用乙個雜湊表 unordered_mapused 記錄每個元素是否使用

(2)初始化(陣列轉化為map) 下標有關的操作

5 auto:用來宣告自動變數,使用auto變數的優勢是不需要考慮去變數是否被釋放,比較安全吧

6 關於求解sum問題(乙個無序set裡面k個數sum可以逼近或等於乙個給定的target)的可以先排序再 左右夾逼

程式設計小技巧

define conn x,y x y define tochar x x define tostring x x x y表示什麼?表示x連線y,舉例說 int n conn 123,456 結果就是n 123456 char str conn asdf adf 結果就是 str asdfadf 怎...

程式設計小技巧

1.如何通過輸入一組任意長度的數字序列?char inchar n int num n int i 0 int len 0 scanf s inchar len strlen inchar printf len d len for i 0 i 2.scanf gets 與getchar 的區別 ge...

程式設計小技巧

1.判斷乙個自然數是否是某個數的平方?其實就是判斷這個數一定是奇數相加的 由於 n 1 2 n 2 2n 1,1 2 1 1 2 2 1 2 n 1 注意到這些項構成了等差數列 每項之間相差2 所以我們可以比較 n 1,n 1 3,n 1 3 5 和0的關係。如果大於0,則繼續減 如果等於0,則成功...