这篇博客记录了我在跟着《算法笔记》以及习题册《算法笔记 上机实践指南》刷了PAT的题目之后的一些解题方法的总结与心得。
第三章 入门模拟
1. 简单模拟
一般解题思路
这一小节的题目只需根据题目描述(一般规则很简单),用代码实现即可;有些题目在用到一下知识点之后变得更简便。
学到的知识点
- /和%运算符的强大作用
- 数组下标映射打表
- 循环问题的解题思路(left to right = sum - (right to left))
注:知识点的具体运用可以进入下面题目的题解查看。
题目汇总
PAT-B 1001 害死人不偿命的(3n+1)猜想 (15)
PAT-B 1011.A+B和C (15)
PAT-B 1016. 部分A+B (15)
PAT-B 1026. 程序运行时间(15)
PAT-B 1046. 划拳(15)
PAT-B 1008. 数组元素循环右移问题 (20)
PAT-B 1012. 数字分类 (20)
PAT-B 1018. 锤子剪刀布 (20)
PAT-A 1042. Shuffling Machine (20)
PAT-A 1046. Shortest Distance (20)
PAT-A 1065. A+B and C (64bit) (20)
PAT-B 1010. 一元多项式求导 (25)
PAT-A 1002. A+B for Polynomials (25)
PAT-A 1009. Product of Polynomials (25)
2. 查找元素
一般解题思路
在“查找元素”这个小节的题目中,一般会有两种思考的角度:
角度1. 将所有输入读入并保存,遍历所有输入,找到需要查找的元素
角度2. 一边读入一边覆盖,最后保存的就是需要查找的元素
题目汇总
PAT-B 1041. 考试座位号(15)
PAT-B 1004. 成绩排名 (20)
PAT-B 1028. 人口普查(20)
PAT-B 1032. 挖掘机技术哪家强(20)
PAT-A 1011. World Cup Betting (20)
PAT-A 1006. Sign In and Sign Out (25)
PAT-A 1036. Boys vs Girls (25)
3. 图形输出
一般思路
图形打印这类题一般有两种做法:
1. 将要输出的内容填充到二位数组中,输出二维数组
2. 直接输出需要输出的东西
法二探索:
对于第二种方法,我认为有三要素:需要打印的行数、需要打印的列数、每行打印的规则。 一旦这三要素确定了,图形基本就出来了。
三要素的获取方法,遇到的两种较多的类型是找规律和数学推算。
法一探索:
对于第一种方法,二维数组的填充,也是通过找到规律,填充进去。这种