演算法中的一些實用技巧

2021-08-27 09:01:29 字數 939 閱讀 3264

目錄

一、組合數的計算:

二、素數的判定:

三、用函式交換變數(指標作引數):

c(n,m) = n! / ((n-m)! * m!)(m ≤ n)

long long c(int n, int m)

long long ans = 1;

for(int i = m + 1;i <= n;i++)

for(int i = 1;i <= n - m;i++)

return ans;

}

int is_prime(int n)

int m = floor(sqrt(n) + 0.5);

for(int i = 2;i <= m;i++)

}return 1;

}

#include void swap(int* a,int* b)

int main()

錯誤寫法①:

void swap(int* a,int* b)

原因:此寫法交換了swap函式的區域性變數a和b(輔助變數t必須是指標。int t = a是錯誤的),但卻始終沒有修改它們指向的內容,因此main函式中的a和b不會改變。

錯誤寫法②:

void swap(int* a,int* b)

原因:t是乙個變數(指標也是乙個變數,只不過型別是「指標」),根據規則,它在賦值之前是不確定的。如果這個「不確定的值」所代表的記憶體單元恰好是能寫入的,那麼這段程式將正常工作;但如果它是唯讀的,程式可能會崩潰。

Git git的一些實用技巧

在編譯git庫拉下來的 時,往往會產生一些中間檔案,這些檔案我們根本不需要,尤其是在成產環節做預編譯,檢查 提交是否能編譯通過這種case時,我們往往需要編譯完成後不管正確與否,還原現場,以方便下次sync 時不受上一次的編譯影響。git clean f 刪除 untracked files git...

ajax的一些實用技巧

1.盡量優先採用ajax獲取html檔案,然後再操作dom把資料填充到裡面 在實際專案中,如果前端開發人員沒有把頁面給切分開,那麼有如下兩種辦法可供選擇 其一是,在各種點選事件中,用js去拼接並在拼接的時候把資料填充到裡面。如下 row.summary if row.tags else htmlst...

window 7的一些實用技巧

今天看了本世界,上面有幾個windows7的一些小技巧,現在貼出來供大家分享一下 1.工作列位置自由移動 在開始選單上右擊點屬性,進入工作列和開始選單屬性,然後點工作列選項卡,之後你就能看見螢幕上工作列的位置,下拉列表中有 頂部,底部,左側,右側 2.多核心加速啟動 windows7系統的開機預設只...