您的位置:首页 > 理论基础

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

2019-01-07 17:08 211 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 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 解题思路

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: