读书笔记——《王道论坛计算机考研机试指南》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29978597/article/details/86012825

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 解题思路

猜你喜欢

转载自blog.csdn.net/qq_29978597/article/details/86012825