![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT真题刷题记录(Basic Level)
赵清随
这个作者很懒,什么都没留下…
展开
-
B1027
题目分析最初级的输出图形题就是直白地说明要输出几行,而这一题给的是输出的总数,所以要先从给定的N推算出要输出几行。而能输出的行数和给出的N是有严格的数学关系式的。假设给定N个符号,从顶层到中层的层数是n,总层数是M,那么有:n=N+12, M=2n2−1n = \sqrt{\frac{N+1}{2}},\ M = 2n^2 - 1n=2N+1, M=2n2−1对于每一行需要输出两种元素,分别是空格和给定的字符。空格依次递增后递减,步长1个,初始为0个;给定字符依次递减后递增,步原创 2020-10-27 20:05:00 · 92 阅读 · 0 评论 -
B1028
题目分析这题本质上就是在比时间,但是这个时间怎么去表示呢?我一开始是想用结构体去表示个人信息,把年月日存成数字类型。但是后来发现,存成字符数组类型的话,因为时间的格式均为yyyy/mm/dd,所以是可以比较的,再加上ASCII中的数字是有序的,所以字符串表示的时间序列在比较时也是满足先后顺序的,即时间点在前的时间字符串一定比时间点在后的时间字符串要小,这样只需要使用strcmp()方法就可以比较两个时间点,而不需要把时间转成数字信息后再去按年月日分别比较,大大减小了做题复杂度。同时这么做在过滤不合理的出原创 2020-10-27 19:27:25 · 110 阅读 · 0 评论 -
B1029
题目分析无算法设计无新知识点C++中的vector没有contain()方法,查找某vector中是否有某元素可以用find(),该方法在algorithm头文件中,用法是:#include<algorithm> ... vector<char> vec; ... if(find(vec.begin(), vec.end(), elem) != vec.end()) // 返回的是所找的迭代器,没找到自然返回vec的end()把字母字符转大小写有专门的函原创 2020-10-27 19:17:54 · 98 阅读 · 0 评论