1. 程式人生 > >讀書筆記——《王道論壇計算機考研機試指南》

讀書筆記——《王道論壇計算機考研機試指南》

1.經典演算法

1.1.排序類問題

1.1.1 解題思路

利用sort函式,根據題目所給的條件定義不同的cmp排序規則。

1.1.2 sort函式的用法

有兩種形式:

  1. sort(arr,arr+N):
    預設形式,按照從小到大的順序排列。
  2. 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); }

2.資料結構

1.1.排序類問題

1.1.1 解題思路