讀書筆記——《王道論壇計算機考研機試指南》
阿新 • • 發佈:2019-01-11
1.經典演算法
1.1.排序類問題
1.1.1 解題思路
利用sort函式,根據題目所給的條件定義不同的cmp排序規則。
1.1.2 sort函式的用法
有兩種形式:
- sort(arr,arr+N):
預設形式,按照從小到大的順序排列。 - sort(arr,arr+N,cmp):
傳入的cmp函式用於自定義排序規則。
例如:
//按照從大到小的順序排列
bool cmp(int x,int y){
return x>y;
}
1.2.日期類問題
1.2.1 解題思路
注意考慮特殊情況,閏年2月29天。
1.2.2 參考程式碼
int daytab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
//給出年月日,求是一年的第幾天
int printdayofyear(int year,int month,int day){
if(year%4==0&&year%100!=0||year%400==0)//如果是閏年
daytab[2]=29;
else
daytab[2]=28;
for(int i=1;i<month;i++)
day+=daytab[i];
printf("%d年的第%d天\n",year,day);
}
//給出一年的第幾天,輸出月日
void printyymmdd(int year,int &month,int &day){
if(year%4==0&&year%100!=0||year%400==0)//如果是閏年
daytab[2]=29;
else
daytab[2]=28;
month=1;
while(day>daytab[month]){
day-=daytab[month++];
}
printf("%04d-%02d-%02d\n",year,month,day);
}