《演算法競賽入門經典》(第二版)筆記目錄

2021-10-18 22:15:28 字數 1374 閱讀 8768

第一章 程式設計入門

第二章 迴圈結構程式設計

第三章 陣列和字串

第四章 函式和遞迴

出現的問題(有些真的想不太通,先記住好惹):

雞兔同籠問題先寫由題目得出的等式,結果如果正確就一定是偶數……畢竟兔和雞都是偶數隻腳。

求素數/謂詞/質數(被1和他自身整除的、大於1的整數稱為素數)只要求到平方根就行,因為任何乙個數都不可能分解成兩個大於其平方根的數的乘積,只能分解為乙個大於或等於其平方根,另乙個小於或等於其平方根

閏年:①能被400整除,②被4整除但不能被100整除

完全平方數:乙個數能表示某個整數的平方形式

乙個數裡面打頭的數取值範圍是1~9,乙個數裡面打尾的數字才要被四捨五入

目前幾乎在所有的比賽平台上,int都是32位整數即-2147483648~2147483647

25!的末尾有6個零,所以從第25開始,後面所有的項都不會影響和的末6位數字(因為1~25:5,10,15,20,25(5*5)一共有6個因數5,而因數5的個數決定末尾0的個數)

100這種看著就很少的次數有的時候題目簡單可以用窮舉法。

經常要用到的一些字母或者符號以及數字可以儲存為常量陣列。

出現的函式:

include

計算x的算術平方根:sqrt(x);

計算x的反余弦:acos(x);(acos(1.0)=π)

計算不超過x的最大整數:floor(x);

include

從陣列a賦值k個元素到陣列b(int a[maxn],b[maxn];):memcpy(b,a,sizeof(int)*k);【浮點型陣列就是double】

從陣列a全部複製到陣列b中:memcpy(b,a,sizeof(a));

在乙個字串陣列中查詢單個字元:strchr(s,buf[i]);(在乙個字元都沒讀到的時候返回null)

#include

sort(陣列名,陣列末位址(sizeof(x)陣列長度),compare); (若不寫compare則預設公升序排列)

#include

判斷字元是否是字母(大小寫都算):isalpha(ch);(是字母返回1 ,否則返回 0)

判斷字元是否是數字(0-9):isdigit(ch);(是字母返回1 ,否則返回 0)

檢查ch是否是可列印字元(包括空格): isprint(ch); (是返回1 ,否則返回 0)

將ch字元轉換成大寫字母:toupper(ch);(返回ch所代表的的字元的大寫字母)

將ch字元轉換為小寫字母:tolower(ch);(返回ch所代表的的字元的小寫字母)

include

計時函式:clock();在程式之前呼叫此函式,便可獲得整個程式的執行時間。這個時間除以常數clocks_per_sec只會得到的值以「秒」為單位

演算法競賽入門經典(第二版) 習題

習題2 5 include int main if 10 n b 10 b 5 確定末位四捨五入的情況 printf d 10 n b 1 else printf d 10 n b return 0 注意 要及時輸出,防止n越界 習題2 6 include void result int num,i...

《演算法競賽入門經典(第二版)》 隨筆

c語言中整數值用 d輸出,實數 浮點數 用 f輸出。kiss原則 keep it and stupid 獲得程式執行時間 包括鍵盤輸入時間 include printf 執行時間 2f n double clock clocks per sec 輸入個數未知時 while scanf d x 1 對...

《演算法競賽入門經典(第二版)》習題(二)

習題 2 1 水仙花數 輸出100 999中的所有水仙花數。若3位數abc滿足abc a b c 則稱其為水仙花數。例如 153 1 5 3 所以153是水仙花數。include intmain return0 習題 2 2 韓信點兵 相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三...