《算法笔记》3.2~3.5-总结

算法笔记3.2~3.4的内容分别是查找元素,图形输出,日期处理,进制转换

题目列表:

3.2:

  1. B1041
  2. B1004
  3. B1028
  4. B1032
  5. A1011
  6. A1006
  7. A1036

3.3:

  1. B1036
  2. B1027
  3. A1031

3.4:PAT在此处没有题目

3.5:

  1. B1022
  2. B1037
  3. A1019
  4. A1027
  5. A1058

这几个部分还是属于简单模拟的内容,不涉及算法。

一般来说,使用结构体就能解决大部分问题,有个有意思的点是在处理形如“John 2001/05/12”这样的数据时,可以用

scanf("%c %d/%d/%d",&name,&year,&month,&day)

这样的格式来处理。

在有的题目中,比如B1028和A1036,需要有一个结构体变量作为比较基准,这个基准是需要初始化的,写好了初始化函数之后不要忘记在主函数中使用(很尴尬,有个题因为少了一句Init()卡了很久)

在查找元素这个小节中,核心的操作是比较和记录,比较出MAX或MIN,或者进行排序,然后再输出,这个时候思考边界条件和比较基准非常重要,比如在A1036的百分制考试中,我们初始化了一个100分的男生成绩,一个0分的女生成绩作为比较基准,使得算法能够顺利的进入初次循环

在图形输出这个小节,关键在于找到图形变化的数学规律,给出数学公式再转换为代码,复现代码的过程不困难,难点是找出数学规律给出公式

进制转换的题目,复习了一波进制转换的除K取余法,对于10以上进制,怎么方便的输出字母,可以用A1027中的方法,采用数组做一一对应,A1058要注意结果大小溢出int范围的可能性,使用long long类型来避免这个问题

猜你喜欢

转载自blog.csdn.net/qq_33657357/article/details/81005621
今日推荐