![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PTA
文章平均质量分 51
Lilianac
把简单的事情做好即为不简单
展开
-
L1-043 阅览室(java)
天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录。另外,题目保证书号是书的唯一标识,同一本书在任何时间区间内只可能被一位读者借阅。原创 2022-10-27 16:03:50 · 556 阅读 · 0 评论 -
L1-042 日期格式化(java)
世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。原创 2022-10-27 15:51:05 · 439 阅读 · 0 评论 -
L1-039 古风排版(java)
输入在第一行给出一个正整数N(原创 2022-10-27 15:13:04 · 204 阅读 · 0 评论 -
L1-035 情人节(java)
以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家。第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”。现给出此贴下点赞的朋友名单,请你找出那两位要请客的倒霉蛋。输入按照点赞的先后顺序给出不知道多少个点赞的人名,每个人名占一行,为不超过10个英文字母的非空单词,以回车结束。一个英文句点.标志输入的结束,这个符号不算在点赞名单里。根据点赞情况在一行中输出结论:若存在第2个人A和第14个人B,则输出“A and B are inviting you to dinner…”;若只有A没有B原创 2022-10-27 14:47:01 · 359 阅读 · 0 评论 -
L1-033 出生年(java)
计算年份中含有的不同数字的个数很简单, 就是要注意不足4位的年份要在前面补0, 所以我在计算年份中不同数字的方法中先判断是不是不足4位的年份, 是的话,就先在list中添加一个0, 然后再去计算年份中不同的数字。以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。注意不足4位的年份要在前面补零,例如公元1年被认为是0001年,有2个不同的数字0和1。如“2013”被视为满足“4位数字都不同”的条件,但不被视为满足2位或3位数字不同的条件。个数字都不相同的年份”这句话。原创 2022-10-15 17:13:18 · 256 阅读 · 0 评论 -
L1-032 Left-pad(java)
根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把javascript里面的React/Babel干瘫痪了。这是个什么样的模块?就是在字符串前填充一些东西到一定的长度。这道题目就是字符串之间的操作, 如果n大于输入的字符串,则需要在前面填充指定的字符串, 否则就只需要从输入的字符串后面截取长度为n的字符串了。)和一个字符,分别是填充结果字符串的长度和用于填充的字符,中间以1个空格分开。原创 2022-10-14 18:12:08 · 284 阅读 · 0 评论 -
L1-030 一帮一(java)
⭐️首先思考要把数据放在什么样的容器中, 因为输入的数据是根据成绩排名输入的,所以顺序是不能乱的, 且如果把性别作为键, 姓名作为值存入map一类的容器中不太合适, 但是又要根据性别和排名进行分组, 所以我就选择了二维数组存储数据, 第一列存储性别, 第二列存储排名在前N/2的人名, 第三列存储一组中的另一个名字。⭐️选好容器之后思考怎么分组, 前面N/2的排名是没有变的, 所以只要根据前面的人给后面的人分组, 后面的人分成男生和女生, 对前面的N/2,先从后面的开始找小组成员, 后面的顺着找。原创 2022-10-14 17:54:21 · 286 阅读 · 1 评论 -
L1-027 出租(java)
一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。原创 2022-10-14 11:20:57 · 412 阅读 · 0 评论 -
L1-025 正整数A+B(java)
只能读一行, 所以首先我们需要把A和B分开, 题目要求以第一个空格为A和B的分隔, 所以先遍历字符串,找到第一个空格,然后用。不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。都在区间[1,1000], 所以对于特殊的1000要特别处理, 而对于不满足要求的将其赋值为。稍微有点麻烦的是,输入并不保证是两个正整数。分隔开后就是判断A,B是否是满足要求的整数,使用正则表达式判断。注意:我们把输入中出现的第1个空格认为是。如果输入的确是两个正整数,则按格式。原创 2022-10-13 20:06:59 · 580 阅读 · 0 评论 -
L1-023 输出GPLT(java)
这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按。遍历循环字符串, 用一个数组对出现的GPLT字符的个数进行计数, 然后按照顺序输出, 每输出一个字符其个数减一。给定一个长度不超过10000的、仅由英文字母构成的字符串。输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。在一行中按题目要求输出排序后的字符串。注意该题目对于输入的小写字母要转换为大写字母😄。的顺序打印,直到所有字符都被输出。原创 2022-10-13 16:00:57 · 244 阅读 · 0 评论 -
L1-020 帅到没朋友(java)
(≤1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔;按输入的顺序输出那些帅到没朋友的人。ID间用1个空格分隔,行的首尾不得有多余空格。注意:没有朋友的人可以是根本没安装“朋友圈”,也可以是只有自己一个人在朋友圈的人。当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。随后一行中列出M个待查询的ID,以空格分隔。(≤100),是已知朋友圈的个数;超过1的朋友圈里都至少有2个不同的人。原创 2022-10-12 17:41:21 · 361 阅读 · 0 评论 -
L1-019 谁先倒(java)
酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。在第一行中输出先倒下的那个人:A代表甲,B代表乙。第二行中输出没倒的那个人喝了多少杯。输入第一行先后给出甲、乙两人的酒量(不超过100的非负整数),以空格分隔。下面给出甲、乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒。其中喊是喊出的数字,划是划出的数字,均为不超过100的正整数(两只手一起划)。原创 2022-10-12 16:16:42 · 218 阅读 · 0 评论 -
L1-018 大笨钟(java)
微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:01就会是“当当当当当当当当当当当当”。在午夜00:00到中午12:00期间(端点时间包括在内),笨钟是不敲的。根据当前时间替大笨钟敲钟,即在一行中输出相应数量个Dang。下面就请你写个程序,根据当前时间替大笨钟敲钟。原创 2022-10-12 15:40:52 · 357 阅读 · 0 评论 -
L1-017 到底有多二
一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11×1.5×2×100%,约为81.82%。本题就请你计算一个给定整数到底有多二。原创 2022-10-12 15:33:19 · 160 阅读 · 0 评论 -
L1-016 查验身份证
在保证前一个条件满足的情况下去验证第二个条件,我们计算出前17位的权重和之后对11求余,验证是否与校验码对应只需要把校验码M放进一个数组m里面,其对应的Z值就是索引,这样验证起来就很简单了,我们只需要将求余之后所得的数字作为m的索引与身份证号的最后一位对照即可。首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};要注意看清题目,我就是没有看清题目,以为是要输出合格的身份证,写完之后发现与答案完全不同,所以花费了稍微多一点的时间. 😄。原创 2022-10-11 17:07:10 · 239 阅读 · 0 评论 -
L1-013 计算阶乘和
对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。对于给定的正整数N,需要你计算。在一行中输出S的值。原创 2022-10-11 16:55:24 · 289 阅读 · 0 评论 -
L1-009 N个数求和
可以用欧几里得算法: 先用两个数中较大的数除以较小的数,如有余数,则用较小的那个数继续除以余数,按照这样的方法一直除下去,除到余数为0为止, 则最后的除数就是两个数的最大公因数🤔。接下来就是求最小公倍数,用公式法最简单: 两个数的最小公倍数 = 两个数的乘积 / 两个数的最大公因数。另外,负数的符号一定出现在分子前面。,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。的形式给出的,你输出的和也必须是有理数的形式。麻烦的是,这些数字是以有理数。本题的要求很简单,就是求。原创 2022-10-11 15:16:30 · 515 阅读 · 0 评论 -
L1-007 念数字
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。只需要将输入的数字以字符串的形式输入,然后循环遍历输出相应的拼音即可。输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出。原创 2022-10-09 16:51:49 · 81 阅读 · 0 评论 -
L1-008 求整数段和
给定两个整数A和B,输出从A到B的所有整数以及这些数的和。原创 2022-10-07 16:13:26 · 158 阅读 · 0 评论 -
L1-005 考试座位号(java)
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。原创 2022-10-06 18:23:45 · 884 阅读 · 4 评论 -
L1-003 个位数统计
给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。原创 2022-10-05 13:06:23 · 227 阅读 · 0 评论 -
L1-002 打印沙漏
所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。原创 2022-10-04 14:42:04 · 140 阅读 · 0 评论 -
7-6 电话聊天狂人 (15 分)
给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人。输入格式:输入首先给出正整数N(≤105),为通话记录条数。随后N行,每行给出一条通话记录。简单起见,这里只列出拨出方和接收方的11位数字构成的手机号码,其中以空格分隔。输出格式:在一行中给出聊天狂人的手机号码及其通话次数,其间以空格分隔。如果这样的人不唯一,则输出狂人中最小的号码及其通话次数,并且附加给出并列狂人的人数。输入样例:413005711862 1358862583213505711862 13088625832135原创 2022-01-06 17:57:45 · 183 阅读 · 0 评论 -
7-1 德才论 (16 分)
宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。输入格式:输入第一行给出 3 个正整数,分别为:N(≤105),即考生总数;L(≥60),为录取最低分数线,即德分和才分均不低于 L 的考生才有资格被考虑录取;H(<100),为优先录取线——德分和才分均不低于此线的被定义为“才德全尽”,此类考生原创 2021-12-30 23:27:59 · 333 阅读 · 0 评论 -
7-9 求两个一元多项式的和 (20 分)
求两个一元多项式的和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分1行,分别以指数递降方式输出和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例1:4 3 4 -5 2 6 1 -2 03 5 20 -7 4 3 1输出样例1:5 20 -4 4 -5 2 9 1 -2 0示例代码如下:impor原创 2021-12-28 22:27:11 · 788 阅读 · 0 评论 -
7-8 找出第二小的数 (10 分)
求n个整数中第二小的数。相同的整数看成一个数。比如,有5个数分别是1,1,3,4,5,那么第二小的数就是3。输入格式:输入包含多组测试数据。输入的第一行是一个整数C,表示有C组测试数据;每组测试数据的第一行是一个整数n,表示本组测试数据有n个整数(2<=n<=10),接着一行是n个整数(每个数均小于100)。输出格式:为每组测试数据输出第二小的整数,如果不存在第二小的整数则输出“NO”,每组输出占一行。输入样例:在这里给出一组输入。例如:321 251 1 3 4 5原创 2021-12-28 22:24:05 · 561 阅读 · 0 评论 -
7-7 自动判分 (100 分)
乒乓球早期曾采用21分制,经过改革后现在的赛制主流采用11分制,现在需要对多年比赛的统计数据进行一些分析。 具体通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾)。 比如现在有这么一份记录,(其中W表示我国队员获得一分,L表示外国对手获得一分): WWWWWWWWWWWWWWWWWWWWWWLW。在11分制下,此时比赛的结果是我国队员第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。而在21分制下,此时比赛结果是原创 2021-12-28 22:20:16 · 910 阅读 · 0 评论 -
7-6 jmu-ds-栈与队列-stack、queue与string小综合 (5 分)
使用栈与队列逐个处理字符串中的每个字符将line中的字符依次入栈,然后输出栈中元素个数与栈顶元素。输入一个字符x(待删除字符)。然后将栈中元素依次出栈并输出,出栈时将不等于x的字符依次入队列,以空格分隔。输出队列元素个数,队头与队尾,以空格分隔。最后输出队列中所有元素。输入格式:输入一个个字符串 输入一个字符x(待删除字符)输出格式:栈中元素个数 栈顶元素栈中符合条件的元素(以空格分隔)队列中元素个数 队头元素 队尾元素队列中所有元素(以空格分隔)输入样例:ThisIsATest原创 2021-12-27 16:13:47 · 1589 阅读 · 0 评论 -
7-4 jmu-ds-简单密码 (22 分)
Julius Caesar曾经使用过一种很简单的密码。对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样就得到了密文。比如字符A用F来代替。如下是密文和明文中字符的对应关系。密文 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z明文 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U你的任务是对给定的密文进行解密得到明文。 你需要注意的是,密文中出现的字母都是大写 字母。密文中也包原创 2021-12-27 16:09:04 · 1629 阅读 · 1 评论 -
7-2 jmu-ds-最长数字序列 (22 分)
输入一个字符串,求该字符串中最长连续数字序列出现的起始位置及其长度。输入格式:输入一个字符串,可包含空格。输出格式:输出内容:最长数字序列起始位置和长度空格隔开。输出尾部不能有空格。输入空串,输出"NULL"输入样例:123ab12345a输出样例:5 5示例代码:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc=ne原创 2021-12-27 16:05:55 · 1044 阅读 · 0 评论 -
7-1 jmu-ds-顺序表区间元素删除 (15 分)
若一个线性表L采用顺序存储结构存储,其中所有的元素为整数。设计一个算法,删除元素值在[x,y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1)。输入格式:三行数据,第一行是顺序表的元素个数,第二行是顺序表的元素,第三行是x和y。输出格式:删除元素值在[x,y]之间的所有元素后的顺序表。输入样例:105 1 9 10 67 12 8 33 6 23 10输出样例:1 67 12 33 2import java.util.ArrayList;import java.u原创 2021-12-27 15:59:50 · 608 阅读 · 0 评论