![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT (Basic Level)
文章平均质量分 61
成功捕捉楼上
这个作者很懒,什么都没留下…
展开
-
1029 旧键盘(c++实现)
原题描述思路分析本来想着遍历a字符串,和b字符串依次比较,将不同的字符按要求输出,同时设定一个数组用于记录是否已被输出过,但总有用例不通过…没想明白还有什么用例问题,参考的网上的代码,发现很简单,不用分别判断,一次性判断输出就好。代码#include<bits/stdc++.h>using namespace std;int main(){ stri...原创 2019-03-07 16:34:05 · 233 阅读 · 1 评论 -
1054. 求平均值
原题描述:本题的基本要求非常简单:给定N个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是[-1000,1000]区间内的实数,并且最多精确到小数点后2位。当你计算平均值的时候,不能把那些非法的数据算在内。输入格式:输入第一行给出正整数N(输出格式:对每个非法输入,在一行中输出“ERROR: X is not a lega原创 2017-08-07 10:04:02 · 166 阅读 · 0 评论 -
1053. 住房空置率
原题描述:在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断。判断方法如下:在观察期内,若存在超过一半的日子用电量低于某给定的阈值e,则该住房为“可能空置”;若观察期超过某给定阈值D天,且满足上一个条件,则该住房为“空置”。现给定某居民区的住户用电量数据,请你统计“可能空置”的比率和“空置”比率,即以上两种状态的住房占居民区住房原创 2017-08-07 09:32:33 · 152 阅读 · 0 评论 -
1060. 爱丁顿数
原题描述:英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数”E,即满足有E天骑车超过E英里的最大整数E。据说爱丁顿自己的E等于87。现给定某人N天的骑车距离,请你算出对应的爱丁顿数E(输入格式:输入第一行给出一个正整数N(5),即连续骑车的天数;第二行给出N个非负整数,代表每天的骑车距离。输出格式:在一行中给出N原创 2017-08-14 10:42:28 · 164 阅读 · 0 评论 -
1028. 人口普查
原题描述:某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1个人的原创 2017-07-29 11:37:09 · 317 阅读 · 0 评论 -
1027. 打印沙漏
原题描述:本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能原创 2017-07-29 09:43:58 · 226 阅读 · 0 评论 -
1055. 集体照
原题描述:拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下:每排人数为N/K(向下取整),多出来的人全部站在最后一排;后排所有人的个子都不比前排任何人矮;每排中最高者站中间(中间位置为m/2+1,其中m为该排人数,除法向下取整);每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、186、175原创 2017-08-14 09:35:07 · 341 阅读 · 0 评论 -
1050. 螺旋矩阵
原题描述:本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第1个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为m行n列,满足条件:m*n等于N;m>=n;且m-n取所有可能值中的最小值。输入格式:输入在第1行中给出一个正整数N,第2行给出N个待填充的正整数。所有数字不超过104,相邻数字以空格分隔。输出格式:输原创 2017-08-14 09:25:10 · 190 阅读 · 0 评论 -
1052. 卖个萌
原文描述:萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见,我们假设一个表情符号是按下列格式输出的:[左手]([左眼][口][右眼])[右手]现给出可选用的符号集合,请你按用户的要求输出表情。输入格式:输入首先在前三行顺序对应给出手、眼、口的可选符号集。每个符号括在一对方括号[]内。题目保证每个集合都至少有一个符号,并不超过10个符号;原创 2017-08-06 09:36:43 · 159 阅读 · 0 评论 -
1049. 数列的片段和
原题描述:给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列{0.1, 0.2, 0.3, 0.4},我们有(0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4) 这10个片段。给定正整数原创 2017-08-06 08:38:51 · 157 阅读 · 0 评论 -
1045. 快速排序
原题描述:著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的N个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定N = 5, 排列是1、3、2、4、5。则:1的左边没有元素,右边的元素都比它大,所以它可能是主元;尽管3原创 2017-08-12 17:37:49 · 139 阅读 · 0 评论 -
1040. 有几个PAT
原文链接见:http://www.jianshu.com/p/65291de1906b#include int main ( ){ int P=0, A=0, PA=0, PAT=0 ; char c ; int i = 0 ; while ( ( c = getchar ( ) ) != EOF ) { if ( c == 'P原创 2017-08-12 16:09:53 · 120 阅读 · 0 评论 -
1035. 插入与归并
排序算法忘完了。。。。百度了一下详细的插入和归并排序过程。。。然后参考的网上的代码。。。#include#includeint cmp ( const void *p1 , const void *p2 ){ return *( int *)p1 - *( int *)p2 ;}int main ( ){ int N , a[ 100 ] , b[ 100 ] ,原创 2017-08-12 15:09:03 · 152 阅读 · 1 评论 -
1024. 科学计数法
原题描述:科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。输入格式:每个输入包含1个测原创 2017-07-27 11:07:40 · 3321 阅读 · 0 评论 -
1048. 数字加密
原题描述:本题要求实现一种数字加密方法。首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余——这里用J代表10、Q代表11、K代表12;对偶数位,用B的数字减去A的数字,若结果为负数,则再加10。这里令个位为第1位。输入格式:输入在一行中依次给出A和B,均为不超过100位的正整数,其间以空原创 2017-08-04 11:27:07 · 456 阅读 · 0 评论 -
1025. 反转链表
原题描述:给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转。输入格式:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址、结点总个数正整数N(5)、以及正整数K(接下来有N行,每行原创 2017-08-11 10:32:02 · 115 阅读 · 0 评论 -
1044. 火星数字
原题描述:火星人是以13进制计数的:地球人的0被火星人称为tret。地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。火星人将进位以后的12个高位数字分别称为:tam, hel, maa, huh, tou, kes, hei, elo, syy, lok, mer原创 2017-08-03 12:21:59 · 265 阅读 · 0 评论 -
1065. 单身狗
原文描述:“单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。输入格式:输入第一行给出一个正整数N(输出格式:首先第一行输出落单客人的总人数;随后第二行按ID递增顺序列出落单的客人。ID间用1个空格分隔,行的首尾不得有多余空格。输入样例:311111 2222233333 444445555原创 2017-08-14 17:09:52 · 182 阅读 · 0 评论 -
1057. 数零壹
原题描述:给定一串长度不超过105的字符串,本题要求你将其中所有英文字母的序号(字母a-z对应序号1-26,不分大小写)相加,得到整数N,然后再分析一下N的二进制表示中有多少0、多少1。例如给定字符串“PAT (Basic)”,其字母序号之和为:16+1+20+2+1+19+9+3=71,而71的二进制是1000111,即有3个0、4个1。输入格式:输入在一行中给出长度原创 2017-08-07 14:57:05 · 146 阅读 · 0 评论 -
1070. 结绳
原题描述:给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。给定N段绳子的长度,你需要找出它们能串成的绳子的最大长度。输入格式:每个输入包含1个测试用例。每个测试用例第1行给出正整数N (2 4)原创 2017-08-15 09:58:53 · 164 阅读 · 0 评论 -
1028 人口普查(c++实现)
原题描述题目分析还是排序问题。依然执着地使用string类型来比较大小!噢耶!输入的同时判断日期是否合理,同时比较大小,和数字没啥两样,只是以字符串来实现。详细见代码实现。注意:如果有0个即没有日期合法,那么输出格式会不一样,需要另外输出。代码#include<bits/stdc++.h>using namespace std;int main(){ ...原创 2019-03-07 10:25:50 · 633 阅读 · 0 评论 -
1024 科学计数法(c++实现)
原题描述思路分析用字符串来储存输入的数据,刨开正负号,小数点,E及之后的数据。移位的时候注意要添0,个数及位置。c++中的string类型非常好用!还要熟练一点使用!附上官方文档:官方string类型下各函数使用详细的实现过程见代码。代码实现#include<bits/stdc++.h>using namespace std;int main(){ ...原创 2019-03-04 15:35:11 · 1439 阅读 · 0 评论 -
1027 打印沙漏(c++实现)
原题描述思路分析对于输入的n=1,和n&lt;7可单独处理。对于n&gt;=7,用字符串数组s[100]来存储每一行的字符串。从第三个字符开始存储。用len表示为从第一层(三个字符)到最高层一共有几行。s数组存储每一行的字符串。比如s[0]="***", s[1]="*****"根据逐行递增两个字符串,可知最高层一共有2*len+1个字符,那么整个沙漏一共有2*{len*[3+(2...原创 2019-03-06 23:00:19 · 3222 阅读 · 0 评论 -
1020 月饼(c++实现)
原题描述题目分析算出单价,排序,贪心。注意是double类型。代码部分#include&lt;bits/stdc++.h&gt;using namespace std;struct mooncake{ double store; double price; double unit_price; bool operator &lt; (const...原创 2019-03-03 20:36:51 · 972 阅读 · 0 评论 -
1019 数字黑洞(c++实现)
原题描述思路分析为方便排序,以string类型作为读入。因为要做减法,所以还得转换为int型整数,我用的cb显示无法识别to_string函数和stoi函数…但是pat提交是可以的。因为要补齐位数,所以无论输入的是几位数,都要在高位添0以满足于四位数减法。用string类型下的insert函数可以实现。代码部分#include&amp;lt;bits/stdc++.h&amp;gt;usi...原创 2019-03-03 17:37:27 · 789 阅读 · 0 评论 -
1014 福尔摩斯的约会(c++实现)
题目描述思路分析题目本身并不难,就是要搞清楚所有的判别条件前两个字符串第一对大写字母相等的为对应的星期 (注意此处的大写字母实际只能是A-G)再往后字符相同的输出对应的小时(注意此处的字符可以为数字,当其为字母的时候只能为大写,看题目!!!)接下来的两对字符串相同字符对应的位置即为分钟(这个判断最简单==)代码部分#include&lt;bits/stdc++.h&gt;...原创 2019-03-02 19:35:55 · 509 阅读 · 0 评论 -
1081 检查密码(c++实现)
题目描述思路分析改了n遍都不知道错在哪,想了半天错误的可能,原来是因为直接cin &gt;&gt; password会没法读入密码中的空格,呵呵。代码部分#include&lt;iostream&gt;#include&lt;cstdio&gt;using namespace std;int main(){ // ios::sync_with_stdio(0); ...原创 2019-02-26 16:07:59 · 608 阅读 · 1 评论 -
1086 就不告诉你(c++实现)
题目描述思路详解一开始思路很简单,倒着输出很直接printf("%d",n - n/10 *10); n/=10;484超简单。。然而并没有这么简单。。因为10*10=100应该输出1而不是001,所以如果最开始一直是0要删掉呀偷懒没用字符串,懒得转嚯嚯嚯,字符串转过来其实也超快!代码如下#include<iostream>#include<cstdi...原创 2019-02-26 14:55:14 · 442 阅读 · 0 评论 -
1041 考试座位号(c++实现)
题目描述思路分析该题关键在于如何存储这组关联数据,一开始想到用结构体,但又有点大材小用,不然就开数组,一个数组肯定不够,要开俩,后来看到这个答案,二维数组,用试机号码作为存储索引,后续直接输出即可。代码链接#include<iostream>using namespace std;int main(){ int M; cin >> M...原创 2019-02-25 10:32:38 · 426 阅读 · 0 评论 -
1031 查验身份证(c++实现)
原文题目描述思路分析这么简单的题写了这么久。。。我怕不是有点智障因为要判断是否全部符合,所以要用count统计符合的个数,这里把判断是否为身份证的功能封装成函数isID重头戏就是怎么写这个函数了。由于输入时用字符串类型,所以要转化成数字类型,同时判断是否为数字,如果不是数字直接return掉,如果是数字,则转化为int类型。再根据加权的到z,这里M里的x不好处理,所以统...原创 2019-02-23 22:06:44 · 959 阅读 · 2 评论 -
1016 部分A+B(C++实现)
原题描述思路分析题目本身不难,就是东搞西搞一直没全对,根据输入的值拼凑出PA和PB,再相加就好了,注意长度,当然也可以用字符串。代码#include<iostream>using namespace std;int main(){ long long int A, B, PA = 0, PB = 0; int DA, DB, cnA = 0, cnB= 0; ...原创 2019-02-23 17:01:35 · 275 阅读 · 0 评论 -
1007 素数对猜想(c++实现)
题目描述思路分析找出不超过 N (≤105\leq10^5≤105)的所有的质数存入数组P。找出所有满足式子Pn+1−Pn=2 P_{n+1}-P_{n} = 2 Pn+1−Pn=2的n的个数,输出即可。代码编写#include<iostream>#include<vector>using namespace std;bool sush...原创 2019-02-23 14:23:29 · 258 阅读 · 0 评论 -
1005 继续(3n+1)猜想(c++实现)
题目描述思路解析开两个数组,a数组用来记录关键字,b数组用来存储前面的数已经覆盖不用继续再判断的数。判断一个数时,先判断b数组中有没有这个数,如果有,直接判断下一个数,如果没有,把这个数存进a数组,然后把这个数在递推过程中产生的数都存进b数组,直到最后一个数。对a数组进行递减排序然后输出。注意格式。升级版思路解析借用c++的vector可直接扩充输入的n,输入一个数,判断一次...原创 2019-02-22 17:18:21 · 629 阅读 · 0 评论 -
1004 成绩排名 (c++实现)
题目描述思路分析直接一个一个比较就好了代码记录#include<iostream>#include<string>using namespace std;int main(){ int n = 0; cin >> n; string max_name = "", min_name = "", max_id = "", min_..原创 2019-02-22 16:14:45 · 1380 阅读 · 0 评论 -
1003 我要通过!(c++实现)
题目链接代码思路详见博客思路解析这道题是根据题目所给条件来找出其隐藏的数学规律当然这里还没有涉及到太过复杂的数学公式,只是找出其变量关系第一个条件很显然就是直接判断,并且可以一开始直接判断,省去部分时间。第二第三个条件可以综合起来观察,而这个观察的结果也就是解决这道题最核心的地方首先PAT符合,若b为空,要符合则a和c必相等以满足xPATx即a = c如果b不为空,判断a...原创 2019-02-22 15:45:18 · 1019 阅读 · 0 评论 -
1002. 写出这个数(C++实现)
#include<iostream>#include<string>using namespace std;int main(){ string s; cin>>s; int sum = 0; string str[10] = {"ling", "yi", "er", "san", "si", "wu", "liu&qu原创 2019-02-22 11:07:25 · 1179 阅读 · 0 评论 -
1043. 输出PATest
原题简介:给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按“PATestPATest....”这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按PATest的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。原创 2017-08-03 10:17:57 · 153 阅读 · 0 评论 -
1020. 月饼
原题描述:月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是原创 2017-08-10 10:31:59 · 286 阅读 · 0 评论 -
1015. 德才论
原题描述:宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。输入格式:输入第1行给出3个正整数,分别为:N(5),即考生总数;L(>=60),为录取最低分数线,即德原创 2017-08-10 10:03:34 · 195 阅读 · 0 评论 -
1003. 我要通过!
原题描述“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字原创 2017-07-24 08:39:59 · 223 阅读 · 0 评论