考研複試專用演算法筆記(二)

2021-09-07 18:00:39 字數 1084 閱讀 3171

二、日期部分

計算某個日期是這年第多少天(清華大學機試 )

思路:用空間換時間,使用預處理(也就是在沒有輸入的情況下先準備出所有可能結果),先把這一年每一天到這年元旦的天數放出來,有輸出時只需輸出對應的天數,時間複雜度為o(1)。

核心**:

//計算給出日期是當年第多少天

#include

#define isleap(x) x%100!=0&&x%4==0||x%400==0?1:0

//這裡用巨集定義,全域性變數, 判斷是否是閏年

int dayofmonth[13][2]=;

struct date}}

};int buf[1001][13][32];

int abs(int x)

int main()

int y1,y2,m1,m2,d1,d2;

while(~scanf("%d%d%d",&y1,&m1,&d1))

return 0;

}練習:

給出年分n,再給出乙個數 m,問這年的第m天的日期是多少。

參考:#include

#define isyeap(x) x%100!=0&&x%4==0||x%400==0?1:0

int dayofmonth[13][2]=;

struct date}}

};int buf[5001][13][32];

int main()

printf("%4d-%02d-%02d\n",tmp.year,tmp.month,tmp.day);

}return 0;

}可能出現的基本錯誤:

1.結構體後必須有;

2.定義的基本變數,特別是陣列,賦值一堆值後別忘記加;

3.編譯錯誤 error: control may reach end of non-void function解決辦法:

這個錯誤是 因為本該有返回值的函式,可能在某種用例測試下沒有返回值,要去在某個地方加返回值。

4 本應輸出乙個數值, 結果給輸出「一串奇怪數字」,可能是你把輸出語句中加了&,輸出的是這個數值的位址。

日期類問題,主要就是考慮到閏年的問題,仔細思考可破。

記為考研複試刷pat第二題

原帖 讀入乙個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。每個測試輸入包含 1 個測試用例,即給出自然數 n 的值。這裡保證 n 小於 10 100 在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後乙個拼音數字後沒有空格。yi san wu inclu...

考研複試 資料結構第二章

1 順序儲存和鍊錶的比較 1 訪問 讀寫 方式 順序表可以順序訪問,也可以隨機訪問,鍊錶只能從表頭順序訪問元素。例如在第i個位置上執行存或取的操作,順序表僅需一次訪問,而鍊錶則需從表頭開始依次訪問i次。2 邏輯結構與物理結構 採用順序儲存時,邏輯上相鄰的元素,對應的物力儲存位置也相鄰。而採用鏈式儲存...

計算機考研複試機試筆記(一)

標頭檔案與定義檔案 基本資料型別 未完待續 計算機考研複試上機指導全書.天勤計算機考研系列.孫肇博 張飛飛.2014.01 ac accepted 答案正確 ce compile error 編譯錯誤 無法通過編譯,檢查是否提交時選錯了語言,或用本地編譯器重新編譯提交的 根據反饋的錯誤資訊,進行修改...