
PAT和GPLT
大学早些时候做的一些PAT和GPLT天梯赛题解,欢迎交流沟通
码奴生来就只知道前进
我的GitHub账号:www.github.com/Mrhuangyi
展开
-
L1-016 查验身份证(15 分)
L1-016 查验身份证(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 10\ M:1 0 X 9...原创 2018-05-21 13:55:13 · 2338 阅读 · 3 评论 -
L1-015 跟奥巴马一起画方块(15 分)
L1-015 跟奥巴马一起画方块(15 分) 美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长N(3<=N<=21)和组成正方形边的某种字符C,间隔一个空格。...原创 2018-05-20 13:55:52 · 1172 阅读 · 0 评论 -
L1-017 到底有多二(15 分)
L1-017 到底有多二(15 分) 一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字“-13142223336”是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11*1.5*2*100%,约为81.82%。本题就请你计算一个给定整数到底有多二。输入格式:输入第一行给出...原创 2018-05-21 15:18:10 · 3823 阅读 · 1 评论 -
L1-018 大笨钟(10 分)
L1-018 大笨钟(10 分) 微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:...原创 2018-05-21 15:21:15 · 2294 阅读 · 1 评论 -
L1-019 谁先倒(15 分)
L1-019 谁先倒(15 分) 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒。输入格式:输入第一行先后给出甲、乙两人...原创 2018-05-21 15:23:40 · 1211 阅读 · 0 评论 -
L1-043 阅览室(20 分)
L1-043 阅览室(20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没...原创 2018-05-25 11:20:19 · 2317 阅读 · 0 评论 -
L1-044 稳赢(15 分)
L1-044 稳赢(15 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。输入格式:输入首先在第一行给出正整数K(<=10),即平局间隔的次数。随后每行给出对方的一次出招:“ChuiZi”代表“锤子”、“JianDao”代表“剪刀...原创 2018-05-25 17:06:48 · 4088 阅读 · 0 评论 -
L1-046 整除光棍(20 分)
L1-046 整除光棍(20 分) 这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然...原创 2018-05-25 17:10:51 · 3176 阅读 · 4 评论 -
L1-047 装睡(10 分)
L1-047 装睡(10 分) 你永远叫不醒一个装睡的人 —— 但是通过分析一个人的呼吸频率和脉搏,你可以发现谁在装睡!医生告诉我们,正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。下面给定一系列人的呼吸频率与脉搏,请你找出他们中间有可能在装睡的人,即至少一项指标不在正常范围内的人。输入格式:输入在第一行给出一个正整数N(<= 10)。随后N行,每行给出一个人...原创 2018-05-25 17:12:56 · 3595 阅读 · 0 评论 -
L1-048 矩阵A乘以B(15 分)
L1-048 矩阵A乘以B(15 分) 给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra行、Ca列,B有Rb行、Cb列,则只有Ca与Rb相等时,两个矩阵才能相乘。输入格式:输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵...原创 2018-05-26 10:18:41 · 6167 阅读 · 0 评论 -
L1-049 天梯赛座位分配(20 分)
L1-049 天梯赛座位分配(20 分) 天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情。为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i 所学校有 M[i] 支队伍,每队 10 位参赛选手。令每校选手排成一列纵队,第 i+1 队的选手排在第 i 队选手之后。从第 1 所学校开始,各校的第 1 位队员顺次入座,然后是各校的第 2 位队员...原创 2018-05-26 14:21:17 · 3186 阅读 · 1 评论 -
L1-050 倒数第N个字符串(15 分)
L1-050 倒数第N个字符串(15 分) 给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增。例如当 L 为 3 时,序列为 { aaa, aab, aac, …, aaz, aba, abb, …, abz, …, zzz }。这个序列的倒数第27个字符串就是 zyz。对于任意给定的 L,本题要求你给出对应序列倒...原创 2018-05-26 14:23:38 · 3186 阅读 · 0 评论 -
L1-053 电子汪(10 分)
L1-053 电子汪(10 分) 据说汪星人的智商能达到人类4岁儿童的水平,更有些聪明汪会做加法计算。比如你在地上放两堆小球,分别有1只球和2只球,聪明汪就会用“汪!汪!汪!”表示1加2的结果是3。本题要求你为电子宠物汪做一个模拟程序,根据电子眼识别出的两堆小球的个数,计算出和,并且用汪星人的叫声给出答案。输入格式:输入在一行中给出两个[1, 9]区间内的正整数A和B,用空格分隔。...原创 2018-05-26 14:28:17 · 4347 阅读 · 0 评论 -
L1-022 奇偶分家(10 分)
L1-022 奇偶分家(10 分) 给定N个正整数,请统计奇数和偶数各有多少个?输入格式:输入第一行给出一个正整N(<= 1000);第2行给出N个正整数,以空格分隔。输出格式:在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。输入样例:9 88 74 101 26 15 0 34 22 77 输出样例:3 6#include<std...原创 2018-05-22 14:32:56 · 962 阅读 · 0 评论 -
L1-054 福到了(15 分)
L1-054 福到了(15 分) “福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N x N 的网格组成的,网格中的元素或者为字符“@”或者为空格。而倒过来的汉字所用的字符由裁判指定。输入格式:输入在第一行中给出倒过来的汉字所用的字符、以及网格的规模 N (不超过100的正整数),其间以 1 个空格分隔;随后 N ...原创 2018-05-27 11:33:17 · 2074 阅读 · 0 评论 -
L1-023 输出GPLT(20 分)
L1-023 输出GPLT(20 分) 给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按“GPLTGPLT….”这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字...原创 2018-05-22 17:18:29 · 2603 阅读 · 2 评论 -
L1-025 正整数A+B(15 分)
L1-025 正整数A+B(15 分) 本题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。输入格式:输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。注意:我们把输入中出现的第1个空格认为是A和B的分隔。题目保证至少存...原创 2018-05-22 17:23:02 · 3190 阅读 · 1 评论 -
L1-027 出租(20 分)
L1-027 出租(20 分) 下面是新浪微博上曾经很火的一张图:一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。本题要求你编写一个程序,为任何一个...原创 2018-05-22 17:27:31 · 4008 阅读 · 1 评论 -
L1-028 判断素数(10 分)
L1-028 判断素数(10 分) 本题的目标很简单,就是判断一个给定的正整数是否素数。输入格式:输入在第一行给出一个正整数N(<=10),随后N行,每行给出一个小于2^31^的需要判断的正整数。输出格式:对每个需要判断的正整数,如果它是素数,则在一行中输出“Yes”,否则输出“No”。输入样例:2 11 111 输出样例:Yes No#incl...原创 2018-05-22 17:29:18 · 11353 阅读 · 4 评论 -
1026 程序运行时间(15)(15 分)
1026 程序运行时间(15)(15 分) 要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”。同时还有一个常数CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数f的运行时间,我们只要在调用f之前先调用clock(),...原创 2018-06-03 10:24:18 · 1287 阅读 · 0 评论 -
1027 打印沙漏(20)(20 分)
1027 打印沙漏(20)(20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙...原创 2018-06-03 10:27:24 · 573 阅读 · 0 评论 -
1028 人口普查(20)(20 分)
1028 人口普查(20)(20 分) 某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数N,取值在(0, 10^5^];随后N行,每行...原创 2018-06-03 10:29:52 · 1643 阅读 · 0 评论 -
1029 旧键盘(20)(20 分)
1029 旧键盘(20)(20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入格式:输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、以及下划线“_”(代表空格)组成。题目保证2个字符串均非空。输出...原创 2018-06-03 10:32:48 · 1149 阅读 · 1 评论 -
1030 完美数列(25)(25 分)
1030 完美数列(25)(25 分) 给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列。现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数N和p,其中N(<= 10^5^)是输入的正整数的个数,p(<= 10^9^)是给定的参数。第二行给出N...原创 2018-06-03 10:51:16 · 2948 阅读 · 9 评论 -
L2-007 家庭房产(25 分)
L2-007 家庭房产(25 分) 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。输入格式:输入第一行给出一个正整数N(<=1000),随后N行,每行按下列格式给出一个人的房产:编号 父 母 k 孩子~1~ … 孩子~k~ 房产套数 总面积其中 编号 是每个人独有的一个4位数的编号;父 和 母 分别是该编号对应的这个人的父母的编...原创 2018-06-03 14:58:44 · 2461 阅读 · 0 评论 -
L1-055 谁是赢家(10 分)
L1-055 谁是赢家(10 分) 某电视台的娱乐节目有个表演评审环节,每次安排两位艺人表演,他们的胜负由观众投票和3名评委投票两部分共同决定。规则为:如果一位艺人的观众票数高,且得到至少1名评委的认可,该艺人就胜出;或艺人的观众票数低,但得到全部评委的认可,也可以胜出。节目保证投票的观众人数为奇数,所以不存在平票的情况。本题就请你用程序判断谁是赢家。输入格式:输入第一行给出 2 个不超...原创 2018-05-27 15:43:32 · 6872 阅读 · 0 评论 -
L1-056 猜数字(20 分)
L1-056 猜数字(20 分) 一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。输入格式:输入在第一行给出一个正整数N(<= 10^4^)。随后 N 行,每行给出一个玩家的名字(由不超过8个英文字母组成的字符串)和其猜的正整数(<= 100)。输出格式:在一行中顺序输出:大家平均数的一半(只输出整数部分)...原创 2018-05-27 15:45:44 · 4904 阅读 · 0 评论 -
L1-032 Left-pad(20 分)
L1-032 Left-pad(20 分) 根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把javascript里面的React/Babel干瘫痪了。这是个什么样的模块?就是在字符串前填充一些东西到一定的长度。例如用“*”去填充字符串“GPLT”,使之长度为10,调用left...原创 2018-05-23 15:01:26 · 3442 阅读 · 7 评论 -
L1-030 一帮一(15 分)
L1-030 一帮一(15 分) “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。输入格式:输入第一行给出正偶数N(<=50),即全班学生的人数。此后N行,按照名次从高到低的顺序给出...原创 2018-05-23 15:03:38 · 3976 阅读 · 1 评论 -
L1-031 到底是不是太胖了(10 分)
L1-031 到底是不是太胖了(10 分) 据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 |真实体重-标准体重| < 标准体重x10%)。已知1市斤=0.5公斤。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。输入格式:输入第一行给出一个正整数N(<= 20)。随后N行,每...原创 2018-05-23 15:05:50 · 5242 阅读 · 0 评论 -
L1-033 出生年(15 分)
L1-033 出生年(15 分)以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。输入格式:输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1, 3000]之间,n可以是2、或3、或4...原创 2018-05-23 15:09:05 · 2009 阅读 · 0 评论 -
L1-034 点赞(20 分)
L1-034 点赞(20 分) 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。输入格式:输入在第一行给出一个正整数N(<=1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F~1~...原创 2018-05-23 15:11:50 · 2320 阅读 · 1 评论 -
L1-035 情人节(15 分)
L1-035 情人节(15 分)以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家。第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”。现给出此贴下点赞的朋友名单,请你找出那两位要请客的倒霉蛋。输入格式:输入按照点赞的先后顺序给出不知道多少个点赞的人名,每个人名占一行,为不超过10个英文字母的非空单词,以回车结束。一个英文句点“.”标志输入的结束,这个符号不算在...原创 2018-05-23 15:14:09 · 2537 阅读 · 1 评论 -
1051 复数乘法 (15)(15 分)
1051 复数乘法 (15)(15 分) 复数可以写成(A + Bi)的常规形式,其中A是实部,B是虚部,i是虚数单位,满足i^2^ = -1;也可以写成极坐标下的指数形式(R*e^(Pi)^),其中R是复数模,P是辐角,i是虚数单位,其等价于三角形式 R(cos(P) + isin(P))。现给定两个复数的R和P,要求输出两数乘积的常规形式。输入格式:输入在一行中依次给出两个复数的...原创 2018-06-11 15:54:47 · 2105 阅读 · 0 评论 -
1052 卖个萌 (20)(20 分)
1052 卖个萌 (20)(20 分) 萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见,我们假设一个表情符号是按下列格式输出的:左手[右手] 现给出可选用的符号集合,请你按用户的要求输出表情。输入格式:输入首先在前三行顺序对应给出手、眼、口的可选符号集。每个符号括在一对方括号[]内。题目保证每个集合都至少有一个符号,并不超过10个符号;每个符号包含1到4个非空...原创 2018-06-11 15:56:28 · 460 阅读 · 0 评论 -
1053 住房空置率 (20)(20 分)
1053 住房空置率 (20)(20 分) 在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断。判断方法如下:在观察期内,若存在超过一半的日子用电量低于某给定的阈值e,则该住房为“可能空置”; 若观察期超过某给定阈值D天,且满足上一个条件,则该住房为“空置”。 现给定某居民区的住户用电量数据,请你统计“可能空置”的比率和“空置”比率,即以上两种状态的住房...原创 2018-06-11 15:57:58 · 658 阅读 · 0 评论 -
1054 求平均值 (20)(20 分)
1054 求平均值 (20)(20 分) 本题的基本要求非常简单:给定N个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是[-1000,1000]区间内的实数,并且最多精确到小数点后2位。当你计算平均值的时候,不能把那些非法的数据算在内。输入格式:输入第一行给出正整数N(<=100)。随后一行给出N个实数,数字间以一个空格分隔。输出格式:对每...原创 2018-06-11 16:00:06 · 2779 阅读 · 0 评论 -
1055 集体照 (25)(25 分)
1055 集体照 (25)(25 分) 拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下:每排人数为N/K(向下取整),多出来的人全部站在最后一排; 后排所有人的个子都不比前排任何人矮; 每排中最高者站中间(中间位置为m/2+1,其中m为该排人数,除法向下取整); 每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、1...原创 2018-06-11 16:01:47 · 647 阅读 · 1 评论 -
1031 查验身份证(15)(15 分)
1031 查验身份证(15)(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 10\ M:1 0 X...原创 2018-06-04 16:37:58 · 871 阅读 · 0 评论 -
1032 挖掘机技术哪家强(20)(20 分)
1032 挖掘机技术哪家强(20)(20 分) 为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第1行给出不超过10^5^的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式:在一行中给出总得分...原创 2018-06-04 16:51:00 · 1526 阅读 · 0 评论