模拟题
模拟题分为 简单模拟,查找元素, 图形输出, 日期处理, 进制转换 以及 字符串处理等等!
何为模拟题?
模拟题是一类“题目怎么说,你就怎么做的”的一类题目。此类题目不涉及算法,完全根据题目描述进行代码的编写,主要考察代码能力!!!
【注意】虽听起来可能蛮简单的,但绝不是1 + 1 = 2的题目!!!
有些题实现起来确实有小难度!
说明
-
每个part基本都有我写的博客题解,每个part的题解都是价值蛮大的题(主要以PAT甲乙级为主,code up 为辅)
-
关于代码这里不提供,网上有太多啦!建议大家可以看看每个part下的题解,也许会有不一样的收获哟 (虽然我能保证我的代码基本都是自己写的且100%正确,但不能保证是最优的代码)
-
本篇博客主要是本人完成入门模拟part的小小总结,当然也欢迎广大网友参考参考!
1.简单模拟
如果实现不太麻烦可以称 之为就“简单模拟”
简单模拟入门题 - 题解
简单模拟中等题 - 题解
简单模拟稍微拔高题1 - 题解
简单模拟稍微拔高题2 - 题解
简单模拟主要是根据题目的意思进行做题,当然会有一些题目没有那么好实现,需要我们多做题去积累经验。
1,比如那道 A + B (64 bit)一开始是绝对不会想到溢出的
2,比如循环右移我们可以按照结果来直接输出
3,比如最短路径如何优化时间复杂度?
4,比如多项式的相乘采用何种方式更优?
等等都是需要我们根据题意来进行编写相应的代码,简单模拟虽称简单,但仍旧需要我们去多理解多积累经验
2.查找元素
给定一些元素然后查找某个满足条件的元素
查找元素总体难度偏小,
1,给定数组给定元素,遍历查找是否存在或者存在的位置
2,求给定的数据中的最大值和最小值而一般最大值和最小值都是同时输入同时进行判断的最后输出最大值和最小值即可
3, 大的数据一般会使用结构体数组来存储
3.图形输出
一般根据题目给定的规则来进行画图
图形输出总体难度偏小
1,一般给定一个变量和一个字符来打印相应的图形
2, 唯一的难度在与给定的变量值来计算某图形的长或者高或者空格数等等其他的数值
3,尤其注意每行字符末尾一般不需要加空格的,否则格式错误
4,一般图形输出题代码若显示部分正确,建议不要纠结问题在哪而死磕半小时或者1小时,换个方式编写也许全部正确
4.日期处理
处理平年闰年,以及大小月等问题以及时间
日期处理PAT无对应的练习,主要在codeup
1,日期处理一般会求两个日期之间的天数以及打印输出要按照我们的年月日格式yyyy-mm–dd
2,尤其要注意闰平年中的2月,以及每次将天数累加时将mm进行变换时要注意大小月
3,一般计算日期的天数,不要想着将两个日期相减,那复杂程度会加大
4,一般计算日期的天数或者莫日期加上多少天等于某日期,我们直接使用累加的方法
将小日期将day + 1来不断的改变yy和mm以及day的值使之与大日期相等,中间加过的天数(次数也可) 即为差值天数
- 类似日期还有时间,但时间比日期简单许多
5.进制转换
进制转换涉及到x进制数转换到y进制数(使用十进制数作为中间量)
进制转换难度中等
1,进制转换无非x进制转换十进制,或者十进制转换y进制
2,其次可能是x进制直接转换y进制,一般x先转十进制,然后用十进制转y进制
3,重点掌握进制转换的方法,以10进制转x进制,无非使用10进制对x求余
x进制转10进制无非是x进制数每一位乘以x^i…
4, 万变不离其宗,总的变换离不开以上三点
6.字符串处理
字符串处理问题很能体现代码能力的一种题型,一般实现逻辑会非常麻烦
而且可能会有很多的细节和边界情况,因此对代码能力弱的会有较大难度!
字符串入门题 - 题解
字符串拔高题1 - 题解
字符串拔高题2 - 题解
字符串处理属于入门模拟题中的压轴题,从练习题的数量也可以看出来!
1,字符串处理主要还得多动脑筋想想,非常考验思维的严谨性。.
2,字符串始终要记得处理末尾加’\0’
3,字符串输入时若前面需要输入n(字符串的个数),需用getchar()吸掉回车符
4,字符串的提交代码会经常出现部分正确的情况,多半是特殊情况没有考虑到,不要急躁静下心来好好想想(你若找到说明你离成功又近了一步)
5, 字符串处理问题不要害怕它,更不要畏怯它,若没思路先手动敲敲代码,敲着敲着就有啦
6,字符串尤其注意中间的空格和末尾的空格
7,攻克字符串part的唯一方法即是多练多思考(重在思考,考虑不同的情况,字符串处理part的三篇博客很好的体现啦)
7,总结
模拟题有难有易,每个part的练习题数量以及完成该part练习题的时间跨度可以看出重点是简单模拟题以及字符串,尤其是字符串处理问题!
我们必须多做多想多积累经验!!!这是进阶大神的必经之路!
8,结语
好啦!入门模拟题即模拟题part基本告一段啦!下一步即为最为基本的算法啦!
奥利给!!!