PAT
北秋i
这个作者很懒,什么都没留下…
展开
-
PAT 1031 查验身份证 C语言实现
一个合法的身份证号码由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-08-10 14:48:47 · 307 阅读 · 0 评论 -
PAT 1059 C语言竞赛 C语言实现
C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。 1、排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶! 2、其他人将得到巧克力。给定比赛的最终排名以及一系列参赛者的 ID,你要给出这些参赛者应该获得的奖品。输入格式:输入第一行给出一个正整数N(≤10...原创 2019-08-16 20:36:36 · 93 阅读 · 0 评论 -
PAT 1058 选择题 C语言实现
批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多。输入格式:输入在第一行给出两个正整数 N(≤1000)和 M(≤100),分别是学生人数和多选题的个数。随后 M 行,每行顺次给出一道题的满分值(不超过 5 的正整数)、选项个数(不少于 2 且不超过 5 的正整数)、正确选项个数(不超过选项个数的正整数)、所有正确选项。注意每题的选项从小写英文...原创 2019-08-16 20:35:54 · 170 阅读 · 0 评论 -
PAT 1057 数零壹 C语言实现 简易代码
给定一串长度不超过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。输入格式:输入在一行...原创 2019-08-16 20:34:42 · 160 阅读 · 0 评论 -
PAT 1056 组合数的和 C语言实现
给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。输入格式:输入在一行中先给出 N(1<N<10),随后给出 N 个不同的非 0 个位数字。数字间以空格分隔。输出格式:输出所有可能组合出来的2位...原创 2019-08-16 20:33:56 · 148 阅读 · 0 评论 -
PAT 1055 集体照 C语言实现 简易代码
拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下: 每排人数为N/K(向下取整),多出来的人全部站在最后一排; 后排所有人的个子都不比前排任何人矮; 每排中最高者站中间(中间位置为m/2+1,其中m为该排人数,除法向下取整); 每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、...原创 2019-08-16 20:33:15 · 203 阅读 · 0 评论 -
PAT 1054 求平均值 C语言实现 简易代码
本题的基本要求非常简单:给定N个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [−1000,1000] 区间内的实数,并且最多精确到小数点后 2 位。当你计算平均值的时候,不能把那些非法的数据算在内。输入格式:输入第一行给出正整数N(≤100)。随后一行给出N个实数,数字间以一个空格分隔。输出格式:对每个非法输入,在一行中输出ERRO...原创 2019-08-16 20:32:31 · 676 阅读 · 0 评论 -
PAT 1052 卖个萌 C语言实现 简易代码
萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见,我们假设一个表情符号是按下列格式输出的:[左手]([左眼][口][右眼])[右手]现给出可选用的符号集合,请你按用户的要求输出表情。输入格式:输入首先在前三行顺序对应给出手、眼、口的可选符号集。每个符号括在一对方括号[]内。题目保证每个集合都至少有一个符号,并不超过 10 个符号;每个符号包含 1 到 4 ...原创 2019-08-16 20:31:08 · 384 阅读 · 0 评论 -
PAT 1051 复数乘法 C语言实现 简易代码
复数可以写成(A+Bi)的常规形式,其中A是实部,B是虚部,i是虚数单位,满足i2=−1;也可以写成极坐标下的指数形式(R×e(Pi)),其中R是复数模,P是辐角,i是虚数单位,其等价于三角形式(R(cos(P)+isin(P))。现给定两个复数的R和P,要求输出两数乘积的常规形式。输入格式:输入在一行中依次给出两个复数的R1,P...原创 2019-08-15 20:07:29 · 289 阅读 · 0 评论 -
PAT 1050 螺旋矩阵 C语言实现
本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为m行n列,满足条件:m×n等于N;m≥n;且m−n取所有可能值中的最小值。输入格式:输入在第 1 行中给出一个正整数N,第 2 行给出N个待填充的正整数。所有数字不超过104,相邻数字以空格分隔。输出格式:...原创 2019-08-15 20:06:47 · 284 阅读 · 0 评论 -
PAT 1049 数列的片段和 C语言实现 简易代码
给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列 { 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 个片段。给定正整数数列,求出全部...原创 2019-08-15 20:06:05 · 90 阅读 · 0 评论 -
PAT 1060 爱丁顿数 C语言实现 简易代码
英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数”E,即满足有E天骑车超过E英里的最大整数E。据说爱丁顿自己的E等于87。现给定某人N天的骑车距离,请你算出对应的爱丁顿数E(≤N)。输入格式:输入第一行给出一个正整数N(≤105),即连续骑车的天数;第二行给出N个非负整数,代表每天的骑车距离。输出格式:在一...原创 2019-08-16 20:37:22 · 135 阅读 · 0 评论 -
PAT 1061 判断题 C语言实现
判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。输入格式:输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”。随后 N 行,每行给出一个学生的解答。数字间均以空格分隔。输出格式:按照输入的顺序...原创 2019-08-16 20:37:59 · 184 阅读 · 0 评论 -
PAT 1030 完美数列 C语言实现
给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M≤mp,则称这个数列是完美数列。现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数N和p,其中N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。第二行给出N个正整数,每个数不超过109。输出格式:...原创 2019-08-10 14:47:44 · 202 阅读 · 0 评论 -
PAT 1029 旧键盘 C语言实现
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入格式:输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线_(代表空格)组成。题目保证 2 个字符串均非空。输出格式:按照发现顺序,在...原创 2019-08-10 14:46:15 · 222 阅读 · 0 评论 -
PAT 1028 人口普查 C语言实现
某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数N,取值在(0,105];随后N行,每行给出 1 个人的...原创 2019-08-10 14:45:29 · 184 阅读 · 0 评论 -
PAT 1068 万绿丛中一点红 C语言实现
对于计算机而言,颜色不过是像素点对应的一个 24 位的数值。现给定一幅分辨率为M×N的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的颜色与其周围 8 个相邻像素的颜色差充分大。输入格式:输入第一行给出三个正整数,分别是M和N(≤1000),即图像的分辨率;以及 TOL,是所求像素点与相邻点的颜色差阈值,色差超过 TOL 的点才被考虑。随后N行,每行...原创 2019-08-17 15:01:39 · 233 阅读 · 0 评论 -
PAT 1067 试密码 C语言实现
当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死。本题就请你实现这个小功能。输入格式:输入在第一行给出一个密码(长度不超过 20 的、不包含空格、Tab、回车的非空字符串)和一个正整数 N(≤10),分别是正确的密码和系统允许尝试的次数。随后每行给出一个以回车结束的非空字符串,是用户尝试输入的密码。输入保证至少有一次尝试。当读到一行只有单...原创 2019-08-17 15:00:19 · 166 阅读 · 0 评论 -
PAT 1066 图像过滤 C语言实现
图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。输入格式:输入在第一行给出一幅图像的分辨率,即两个正整数M和N(0<M,N≤500),另外是待过滤的灰度值区间端点A和B(0≤A<B≤255)、以及指定的替换灰度值。随后M行,每行给出N个像素点的灰度值,...原创 2019-08-17 14:58:44 · 151 阅读 · 0 评论 -
PAT 1065 单身狗 C语言实现 附带详细解题思路
“单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。输入格式:输入第一行给出一个正整数 N(≤50 000),是已知夫妻/伴侣的对数;随后 N 行,每行给出一对夫妻/伴侣——为方便起见,每人对应一个 ID 号,为 5 位数字(从 00000 到 99999),ID 间以空格分隔;之后给出一个正整数 M(≤10 000),为参加派对的总人数...原创 2019-08-17 14:57:48 · 597 阅读 · 0 评论 -
PAT 1064 朋友数 C语言实现 简易代码
如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。输入格式:输入第一行给出正整数 N。随后一行给出 N 个正整数,数字间以空格分隔。题目保证所有数字小于104。输出格式:首...原创 2019-08-17 14:54:25 · 338 阅读 · 0 评论 -
PAT 1063 计算谱半径 C语言实现 简易代码
在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界。换言之,对于给定的n个复数空间的特征值 {a1+b1i,⋯,an+bni},它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模。现在给定一些复数空间的特征值,请你计算并输出这些特征值的谱半径。输入格式:输入第一行给出正整数 N(≤10 000)是输入的特征值的个数。随后 N 行,每行给出 ...原创 2019-08-17 14:53:18 · 168 阅读 · 0 评论 -
PAT 1062 最简分数 C语言实现
一个分数一般写成两个整数相除的形式:N/M,其中M不为0。最简分数是指分子和分母没有公约数的分数表示形式。现给定两个不相等的正分数N1/M1和N2/M2,要求你按从小到大的顺序列出它们之间分母为K的最简分数。输入格式:输入在一行中按N/M的格式给出两个正分数,随后是一个正整数分母K,其间以空格分隔。题目保证给出的所有整数都不超过 1000。...原创 2019-08-16 20:38:36 · 276 阅读 · 0 评论 -
PAT 1048 数字加密 C语言实现
本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入格式:输入在一行中依次给出 A 和 B,均为不超过 10...原创 2019-08-15 20:05:17 · 361 阅读 · 0 评论 -
PAT 1069 微博转发抽奖 C语言实现
小明 PAT 考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔 N 个人就发出一个红包。请你编写程序帮助他确定中奖名单。输入格式:输入第一行给出三个正整数 M(≤1000)、N 和 S,分别是转发的总量、小明决定的中奖间隔、以及第一位中奖者的序号(编号从 1 开始)。随后 M 行,顺序给出转发微博的网友的昵称(不超过 20 个字符、不包含空格回车的非空字符串)。注...原创 2019-08-17 15:02:31 · 158 阅读 · 0 评论 -
PAT 1086 就不告诉你 C语言实现
做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。输入格式:输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。输出格式:在一行中倒着输出 A 和 B 的乘积。输入样例:5 7输出样例:53#include<st...原创 2019-09-01 20:02:44 · 301 阅读 · 0 评论 -
PAT 1087 有多少不同的值 C语言实现
当自然数n依次取 1、2、3、……、N时,算式⌊n/2⌋+⌊n/3⌋+⌊n/5⌋有多少个不同的值?(注:⌊x⌋为取整函数,表示不超过x的最大自然数,即x的整数部分。)输入格式:输入给出一个正整数N(2≤N≤104)。输出格式:在一行中输出题面中算式取到的不同值的个数。输入样例:2017输出样例:1480#include<...原创 2019-09-01 20:03:53 · 91 阅读 · 0 评论 -
PAT 1088 三人行 C语言实现
子曰:“三人行,必有我师焉。择其善者而从之,其不善者而改之。”本题给定甲、乙、丙三个人的能力值关系为:甲的能力值确定是 2 位正整数;把甲的能力值的 2 个数字调换位置就是乙的能力值;甲乙两人能力差是丙的能力值的 X 倍;乙的能力值是丙的 Y 倍。请你指出谁比你强应“从之”,谁比你弱应“改之”。输入格式:输入在一行中给出三个数,依次为:M(你自己的能力值)、X 和 Y。三个数字均为不超...原创 2019-09-01 20:05:35 · 204 阅读 · 0 评论 -
PAT 1089 狼人杀-简单版 C++实现 解题思路
以下文字摘自《灵机一动·好玩的数学》:“狼人杀”游戏分为狼人、好人两大阵营。在一局“狼人杀”游戏中,1 号玩家说:“2 号是狼人”,2 号玩家说:“3 号是好人”,3 号玩家说:“4 号是狼人”,4 号玩家说:“5 号是好人”,5 号玩家说:“4 号是好人”。已知这 5 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并不是所有狼人都在撒谎。扮演狼人角色的是哪两号玩家?本题...原创 2019-09-01 20:14:55 · 442 阅读 · 0 评论 -
PAT 1090 危险品装箱 C++实现 解题思路
集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里。比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸。本题给定一张不相容物品的清单,需要你检查每一张集装箱货品清单,判断它们是否能装在同一只箱子里。输入格式:输入第一行给出两个正整数:N(≤104) 是成对的不相容物品的对数;M(≤100) 是集装箱货品清单的单数。随后数据分两大块给出。第一块有N行...原创 2019-09-01 20:21:53 · 195 阅读 · 0 评论 -
PAT 1091 N-自守数 C语言实现
如果某个数K的平方乘以N以后,结果的末尾几位数等于K,那么就称这个数为“N-自守数”。例如3×922=25392,而25392的末尾两位正好是92,所以92是一个3-自守数。本题就请你编写程序判断一个给定的数字是否关于某个N是N-自守数。输入格式:输入在第一行中给出正整数M(≤20),随后一行给出M个待检测的、不超过 1000 的正整数。输...原创 2019-09-02 08:22:49 · 277 阅读 · 0 评论 -
PAT 1092 最好吃的月饼 C语言实现
月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种。若想评比出一种“最好吃”的月饼,那势必在吃货界引发一场腥风血雨…… 在这里我们用数字说话,给出全国各地各种月饼的销量,要求你从中找出销量冠军,认定为最好吃的月饼。输入格式:输入首先给出两个正整数N(≤1000)和M(≤100),分别为月饼的种类数(于是默认月饼种类从 1 到N编号)和参与统计的城市数量。接...原创 2019-09-02 08:23:45 · 214 阅读 · 0 评论 -
PAT 1093 字符串A+B C语言实现 易错点分析
给定两个字符串A和B,本题要求你输出A+B,即两个字符串的并集。要求先输出A,再输出B,但重复的字符必须被剔除。输入格式:输入在两行中分别给出A和B,均为长度不超过106的、由可见 ASCII 字符 (即码值为32~126)和空格组成的、由回车标识结束的非空字符串。输出格式:在一行中输出题面要求的A和B的和。输入样例:This is a ...原创 2019-09-02 08:27:03 · 390 阅读 · 1 评论 -
PAT 1094 谷歌的招聘 C语言实现
2004 年 7 月,谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌(如下图)用于招聘。内容超级简单,就是一个以 .com 结尾的网址,而前面的网址是一个 10 位素数,这个素数是自然常数 e 中最早出现的 10 位连续数字。能找出这个素数的人,就可以通过访问谷歌的这个网站进入招聘流程的下一步。自然常数 e 是一个著名的超越数,前面若干位写出来是这样的:e = 2.718281828...原创 2019-09-02 08:31:20 · 441 阅读 · 0 评论 -
PAT 1095 解码PAT准考证 C语言实现 解题思路
PAT 准考证号由 4 部分组成:第 1 位是级别,即T代表顶级;A代表甲级;B代表乙级; 第 2~4 位是考场编号,范围从 101 到 999; 第 5~10 位是考试日期,格式为年、月、日顺次各占 2 位; 最后 11~13 位是考生编号,范围从 000 到 999。现给定一系列考生的准考证号和他们的成绩,请你按照要求输出各种统计信息。输入格式:输入首先在一行中给出...原创 2019-09-02 08:38:50 · 184 阅读 · 0 评论 -
PAT 1085单位排行 C++实现 思路分析 解题技巧 最后一个测试点分析
每次 PAT 考试结束后,考试中心都会发布一个考生单位排行榜。本题就请你实现这个功能。输入格式:输入第一行给出一个正整数 N(≤105),即考生人数。随后 N 行,每行按下列格式给出一个考生的信息:准考证号 得分 学校其中准考证号是由 6 个字符组成的字符串,其首字母表示考试的级别:B代表乙级,A代表甲级,T代表顶级;得分是 [0, 100] 区间内的整数;学校是由不超...原创 2019-09-01 20:00:20 · 292 阅读 · 1 评论 -
PAT 1053 住房空置率 C语言实现
在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断。判断方法如下: 在观察期内,若存在超过一半的日子用电量低于某给定的阈值e,则该住房为“可能空置”; 若观察期超过某给定阈值D天,且满足上一个条件,则该住房为“空置”。 现给定某居民区的住户用电量数据,请你统计“可能空置”的比率和“空置”比率,即以上两种状态的住房占居民区住房总套数的百分比...原创 2019-08-29 14:48:38 · 131 阅读 · 0 评论 -
PAT 1070 结绳 C语言实现
给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。给定N段绳子的长度,你需要找出它们能串成的绳子的最大长度。输入格式:每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数N(2≤N≤104);第...原创 2019-08-17 15:03:35 · 188 阅读 · 0 评论 -
PAT 1071 小赌怡情 C语言实现
常言道“小赌怡情”。这是一个很简单的小游戏:首先由计算机给出第一个整数;然后玩家下注赌第二个整数将会比第一个数大还是小;玩家下注 t 个筹码后,计算机给出第二个数。若玩家猜对了,则系统奖励玩家 t 个筹码;否则扣除玩家 t 个筹码。注意:玩家下注的筹码数不能超过自己帐户上拥有的筹码数。当玩家输光了全部筹码后,游戏就结束。输入格式:输入在第一行给出 2 个正整数 T 和 K(≤100)...原创 2019-08-17 15:04:27 · 103 阅读 · 0 评论 -
PAT 1072 开学寄语 C语言实现
下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其 QQ,封其电脑,夺其手机,收其 ipad,断其 wifi,使其百无聊赖,然后,净面、理发、整衣,然后思过、读书、锻炼、明智、开悟、精进。而后必成大器也!本题要求你写个程序帮助这所学校的老师检查所有学生的物品,以助其成大器。输入格式:输入第一行给出两个正整数 N(≤1000)和 M(≤6),分别是学生人数和需...原创 2019-08-17 15:05:12 · 125 阅读 · 0 评论