
PAT刷题笔记
PAT从小白到进阶,决不放弃
Code进阶狼人
Stay hungry and modest
展开
-
PAT1044 火星数字 (20 分)
题目描述火星人是以 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,...原创 2019-11-28 16:13:37 · 313 阅读 · 0 评论 -
PAT1043 输出PATest (20 分)
题目描述给定一个长度不超过 10000 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest… 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过 104 的、仅由英文字母构成的非空字符串。输出格式:...原创 2019-11-28 15:51:50 · 280 阅读 · 0 评论 -
PAT1042 字符统计 (20 分)
题目描述请编写程序,找出一段给定文字中出现最频繁的那个英文字母。输入格式:输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1个英文字母,以回车结束(回车不算在内)。输出格式:在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。...原创 2019-11-28 15:05:12 · 366 阅读 · 0 评论 -
PAT1041 考试座位号 (15 分)
题目描述每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数 N(≤1000),随后 N 行,每...原创 2019-11-28 14:50:27 · 1467 阅读 · 0 评论 -
PAT1040 有几个PAT (25 分)
题目描述字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位P),第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位P),第 4 位(A),第 6 位(T)。现给定字符串,问一共可以形成多少个 PAT?输入格式:输入只有一行,包含一个字符串,长度不超过105,只包含 P、A、T 三种字母。输出格式:在一行中输出给定字符串中包含多少个...原创 2019-11-28 13:49:54 · 273 阅读 · 0 评论 -
PAT1039 到底买不买 (20 分)
题目描述小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串可以买,因为包含了全部她想要...原创 2019-11-28 12:11:22 · 387 阅读 · 0 评论 -
PAT1038 统计同成绩学生 (20 分)
题目描述本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。输入格式:输入在第 1 行给出不超过 105 的正整数 N,即学生总人数。随后一行给出 N名学生的百分制整数成绩,中间以空格分隔。最后一行给出要查询的分数个数 K(不超过 N 的正整数),随后是 K 个分数,中间以空格分隔。输出格式:在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行...原创 2019-11-28 11:49:32 · 289 阅读 · 0 评论 -
PAT1037 在霍格沃茨找零钱 (20 分)
题目描述如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。输入格式:输入在 1 行中分别给出 P 和 A,格式为 Galleon.Sickle.Knut,其间用...原创 2019-11-28 11:34:49 · 252 阅读 · 0 评论 -
PAT1036 跟奥巴马一起编程 (15 分)
题目描述美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出格式:输出由给定字符 C 画出的正方形。但...原创 2019-11-28 11:18:06 · 1454 阅读 · 0 评论 -
PAT1035 插入与归并 (25 分)
题目描述根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成 N 个只包含 1 个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下 1 个有序的序列。现给定原始序列和由某排序算法产生的中间序列,请你判...原创 2019-11-28 10:52:56 · 1529 阅读 · 0 评论 -
PAT1034 有理数四则运算 (20 分)
题目描述本题要求编写程序,计算 2 个有理数的和、差、积、商。输入格式:输入在一行中按照 a1/b1 a2/b2的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。输出格式:分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式 k ...原创 2019-11-26 17:58:43 · 290 阅读 · 0 评论 -
PAT1033 旧键盘打字 (20 分)
题目描述旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?输入格式:输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 105 个字符的串。可用的字符包括字母 [a-z, A-Z]、数字 0-9、以及下划线 _(代表空格)、,、.、-、+(代...原创 2019-11-26 17:08:51 · 295 阅读 · 0 评论 -
PAT10321032 挖掘机技术哪家强 (20 分)
为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第 1 行给出不超过 105 的正整数 N,即参赛人数。随后 N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式:在一行中给出总得分最高的学校的编号、及其总分,中...原创 2019-11-26 16:45:50 · 559 阅读 · 0 评论 -
PAT1031 查验身份证 (15 分)
题目描述一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 4 3 2...原创 2019-11-26 16:27:48 · 605 阅读 · 0 评论 -
PAT1030 完美数列 (25 分)
题目描述给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数 N 和 p,其中 N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。第二行给出 N个正整数,每个数不超过 109。输出格...原创 2019-11-26 15:30:35 · 253 阅读 · 0 评论 -
PAT1029 旧键盘 (20 分)
题目描述旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入格式:输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。输出格式:按照发现...原创 2019-11-26 14:37:28 · 317 阅读 · 0 评论 -
PAT1028 人口普查 (20 分)
题目描述某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数 N,取值在(0,105];随后 N 行,每行给出 1 ...原创 2019-11-26 14:12:45 · 333 阅读 · 0 评论 -
PAT1027 打印沙漏 (20 分)
题目描述C++解法解法1#include<cstdio>#include<cmath>int main(){ int n; char c; scanf("%d %c",&n,&c); int bottom=(int)sqrt(2*(n+1))-1; if(bottom%2==0) bottom--;...原创 2019-11-26 14:02:41 · 422 阅读 · 0 评论 -
PAT1026 程序运行时间 (15 分)
题目描述要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数 f 的运行时间,我们只要在调用 f 之前先调用 clock(),获得一个...原创 2019-11-26 13:09:15 · 241 阅读 · 0 评论 -
PAT1025 反转链表 (25 分)
题目描述给定一个常数 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 (≤105)...原创 2019-11-26 12:59:01 · 269 阅读 · 0 评论 -
PAT1024 科学计数法 (20 分)
题目描述科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。输入格式:每个输入包含 1 个测试用例,即一个以科...原创 2019-11-26 11:32:51 · 537 阅读 · 0 评论 -
PAT1023 组个最小数 (20 分)
题目描述给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一...原创 2019-11-26 10:53:16 · 448 阅读 · 0 评论 -
PAT1022 D进制的A+B (20 分)
题目描述C++解法解法1#include<cstdio>int main(){ int a,b,d; scanf("%d%d%d",&a,&b,&d); int sum=a+b; int ans[100],num=0; do{ ans[num++]=sum%d; sum=sum...原创 2019-11-26 10:31:36 · 216 阅读 · 0 评论 -
PAT1021 个位数统计 (15 分)
题目描述C++解法解法1#include<cstdio>#include<cstring>#include<iostream>using namespace std;int main(){ char str[1010]; cin.getline(str,1010); int len=strlen(str); int...原创 2019-11-21 18:03:19 · 323 阅读 · 0 评论 -
PAT1020 月饼 (25 分)
题目描述月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖...原创 2019-11-21 17:40:49 · 496 阅读 · 0 评论 -
PAT1019 数字黑洞 (20 分)
题目描述给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。例如,我们从6767开始,将得到7766 - 6677 = 10899810 - 0189 = 96219621 -...原创 2019-11-21 16:18:02 · 310 阅读 · 1 评论 -
PAT1018 锤子剪刀布 (20 分)
刷题回顾因为9月份有事情弃考了今年9月份的PAT但是又报名了今年12月份的PAT,用了一张100块的优惠卷想要优惠卷的小伙伴可以私我这次因为是有充足的时间,所以我会把刷题笔记用博客记录下来,每一道题都至少有两种解法甚至四五种解法先回顾一下前两天刷的题吧PAT1001 害死人不偿命的(3n+1)猜想 (15 分)PAT1002 写出这个数 (20 分)PAT1003 我要通过! (2...原创 2019-11-15 17:33:43 · 454 阅读 · 0 评论 -
PAT1017 A除以B (20 分)
文章目录题目描述C++解法python解法题目描述本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。输入格式:输入在一行中依次给出 A 和 B,中间以 1 空格分隔。输出格式:在一行中依次输出 Q 和 R,中间以 1 空格分隔。输入样例:123456789050987654321 7...原创 2019-11-15 16:42:08 · 242 阅读 · 0 评论 -
PAT1016 部分A+B (15 分)
文章目录题目描述C++解法解法1解法2python解法题目描述正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA。例如:给定 A=3862767,DA=6,则 A 的“6 部分”PA 是 66,因为 A 中有 2 个 6。现给定 A、DA、B、DB,请编写程序计算 PA+PB。输入格式:输入在一...原创 2019-11-15 16:12:25 · 264 阅读 · 0 评论 -
PAT1015 德才论 (25 分)
题目描述宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。输入格式:输入第一行给出 3 个正整数,分别为:N(≤105),即考生总数;L(≥60),为录取最低分数线,即德分和才分均不低于...原创 2019-11-15 15:38:32 · 785 阅读 · 0 评论 -
PAT1014 福尔摩斯的约会 (20 分)
文章目录题目描述C++解法解法1解法2python解法题目描述大侦探福尔摩斯接到一张奇怪的字条:我们约会吧!3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,...原创 2019-11-15 14:24:19 · 316 阅读 · 0 评论 -
PAT1013 数素数 (20 分)
文章目录题目描述C++解法python解法题目描述令 Pi 表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 PM 到 PN 的所有素数。输入格式:输入在一行中给出 M 和 N,其间以空格分隔。输出格式:输出从 PM 到 PN 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27输出样例:...原创 2019-11-15 13:45:57 · 347 阅读 · 0 评论 -
PAT1012 数字分类 (20 分)
文章目录题目描述C++解法解法1解法2python解法题目描述给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:A1 = 能被 5 整除的数字中所有偶数的和;A2 = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1−n2+n3−n4⋯;A3 = 被 5 除后余 2 的数字的个数;A4 = 被 5 除后余 ...原创 2019-11-14 18:09:01 · 294 阅读 · 0 评论 -
PAT1011 A+B 和 C (15 分)
文章目录题目描述C++解法解法1解法2python解法题目描述C++解法解法1#include<cstdio>#include<cstring>using namespace std;int main() { int T, tcase = 1; scanf("%d", &T); while (T--) { long long a, b, c...原创 2019-11-14 16:52:23 · 263 阅读 · 0 评论 -
PAT1010 一元多项式求导 (25 分)
文章目录题目描述C++解法解法1解法2python解法题目描述C++解法解法1#include<cstdio>#include<iostream>using namespace std;int main(){ int a[2000000]={0}; int k,e,count=0; while(scanf("%d%d",&k,...原创 2019-11-14 16:26:01 · 826 阅读 · 0 评论 -
PAT1009 说反话 (20 分)
文章目录题目描述C++解法解法1解法2python解法题目描述C++解法解法1#include<cstdio>#include<cstring>using namespace std;#include<stdio.h>#include<iostream>int main(){ char str[90]; cin.g...原创 2019-11-14 15:59:32 · 559 阅读 · 0 评论 -
PAT1008 数组元素循环右移问题 (20 分)
文章目录题目描述C++解法解法1:解法2:python解法题目描述C++解法解法1:#include<cstdio>using namespace std;int main(){ int a[110]; int n,m,count=0; scanf("%d%d",&n,&m); m=m%n; for(int i=0;...原创 2019-11-14 14:44:07 · 370 阅读 · 0 评论 -
PAT1007 素数对猜想 (20 分)
文章目录题目描述C++解法题目描述C++解法#include<iostream>using namespace std;bool isprime(int a){ for(int i=2;i*i<=a;i++) if(a%i==0) return false; return true;}int main(){ int n,rs...原创 2019-11-14 11:59:42 · 289 阅读 · 0 评论 -
PAT1006 换个格式输出整数 (15 分)
文章目录题目描述C++解法python解法题目描述C++解法解法一:#include<cstdio>int main(){ int n; scanf("%d",&n); int ans[5],num=0; while(n!=0){ ans[num++]=n%10; n=n/10; } f...原创 2019-11-14 11:12:43 · 357 阅读 · 0 评论 -
PAT1005 继续(3n+1)猜想 (25 分)
文章目录题目描述C++解法Python解法题目描述思路:对每一个输入的数字n进行验证,把验证过的数字对应的arr标记为1,然后对这些输入的数字从大到小排序,输出所有arr=0的数字即为关键数字C++解法#include <iostream>#include <vector>#include <algorithm>using namespace s...原创 2019-11-14 10:52:07 · 297 阅读 · 0 评论