PAT乙级
始七月上
qqqqqqq
展开
-
PAT1033 旧键盘打字 (20 分)
测试点2的问题,就是第一个字符串的输入可以是空,用gets(解决C环境)#include<stdio.h>int daxie(char ch)//判断大写 { if(ch<='Z'&&ch>='A') return 1; return 0;}int xiaoxie(char ch)//判断小写 { if(ch<='z'&&a...原创 2019-05-01 17:27:45 · 238 阅读 · 0 评论 -
1044 火星数字 (20 分)测试点 1 4
火星人是以 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, jou。...原创 2019-05-06 18:05:39 · 1540 阅读 · 0 评论 -
1073 多选题常见计分法 (20 分)
1073 多选题常见计分法 (20 分)批改多选题是比较麻烦的事情,有很多不同的计分方法。有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数;如果考生选择了任何一个错误的选项,则不能得分。本题就请你写个程序帮助老师批改多选题,并且指出哪道题的哪个选项错的人最多。输入格式:输入在第一行给出两个正整数 N(≤1000)和 M(≤100),分别是学...原创 2019-05-18 22:31:57 · 231 阅读 · 0 评论 -
1065 单身狗 (25 分)(测试点1 3)
单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。输入格式:输入第一行给出一个正整数 N(≤ 50 000),是已知夫妻/伴侣的对数;随后 N 行,每行给出一对夫妻/伴侣——为方便起见,每人对应一个 ID 号,为 5 位数字(从 00000 到 99999),ID 间以空格分隔;之后给出一个正整数 M(≤ 10 000),为参加派对的总人数;随...原创 2019-05-15 20:36:43 · 2139 阅读 · 2 评论 -
1081 检查密码 (15 分)(java)测试点2
本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点 .,还必须既有字母也有数字。输入格式:输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束。输出格式:对每个用户的密码,在一行中输出系统反馈信息,分以下5种:如果...原创 2019-05-24 22:04:16 · 975 阅读 · 0 评论 -
1067 试密码 (20 分)(测试点2 5)
当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死。本题就请你实现这个小功能。输入格式:输入在第一行给出一个密码(长度不超过 20 的、不包含空格、Tab、回车的非空字符串)和一个正整数 N(≤ 10),分别是正确的密码和系统允许尝试的次数。随后每行给出一个以回车结束的非空字符串,是用户尝试输入的密码。输入保证至少有一次尝试。当读到一行只有单个 ...原创 2019-05-16 20:46:04 · 1258 阅读 · 0 评论 -
1058 选择题 (20 分)(scanf中输入格式问题)
批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多。输入格式:输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100),分别是学生人数和多选题的个数。随后 M 行,每行顺次给出一道题的满分值(不超过 5 的正整数)、选项个数(不少于 2 且不超过 5 的正整数)、正确选项个数(不超过选项个数的正整数)、所有正确选项。注意每题的选项从小写英文字母...原创 2019-05-12 19:22:22 · 314 阅读 · 0 评论 -
1059 C语言竞赛 (20 分)
C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。1、排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶!2、其他人将得到巧克力。给定比赛的最终排名以及一系列参赛者的 ID,你要给出这些参赛者应该获得的奖品。题目链接:https://pintia.cn/proble...原创 2019-05-12 20:29:18 · 430 阅读 · 0 评论 -
1086 就不告诉你 (15 分)
做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。输入格式:输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。输出格式:在一行中倒着输出 A 和 B 的乘积。输入样例:5 7输出样例:53这个题嘛,我看通过率还挺低的,虽然我也是两次通过的,测试点应该会...原创 2019-05-26 17:54:31 · 2181 阅读 · 0 评论 -
1069 微博转发抽奖 (20 分)(java语言)
小明 PAT 考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔 N 个人就发出一个红包。请你编写程序帮助他确定中奖名单。输入格式:输入第一行给出三个正整数 M(≤ 1000)、N 和 S,分别是转发的总量、小明决定的中奖间隔、以及第一位中奖者的序号(编号从 1 开始)。随后 M 行,顺序给出转发微博的网友的昵称(不超过 20 个字符、不包含空格回车的非空字符串)。注意:可...原创 2019-05-17 17:33:54 · 263 阅读 · 0 评论 -
1070 结绳 (25 分)(哈夫曼树)
给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。rope.jpg给定 N 段绳子的长度,你需要找出它们能串成的绳子的最大长度。输入格式:每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N (2≤N≤104...原创 2019-05-17 18:30:24 · 211 阅读 · 0 评论 -
1072 开学寄语 (20 分)
输入格式:输入第一行给出两个正整数 N(≤ 1000)和 M(≤ 6),分别是学生人数和需要被查缴的物品种类数。第二行给出 M 个需要被查缴的物品编号,其中编号为 4 位数字。随后 N 行,每行给出一位学生的姓名缩写(由 1-4 个大写英文字母组成)、个人物品数量 K(0 ≤ K ≤ 10)、以及 K 个物品的编号。输出格式:顺次检查每个学生携带的物品,如果有需要被查缴的物品存在,则按以下格...原创 2019-05-18 11:00:41 · 297 阅读 · 0 评论 -
1092 最好吃的月饼 (20 分)(java和c)
入首先给出两个正整数 N(≤1000)和 M(≤100),分别为月饼的种类数(于是默认月饼种类从 1 到 N 编号)和参与统计的城市数量。接下来 M 行,每行给出 N 个非负整数(均不超过 1 百万),其中第 i 个整数为第 i 种月饼的销量(块)。数字间以空格分隔。输出格式:在第一行中输出最大销量,第二行输出销量最大的月饼的种类编号。如果冠军不唯一,则按编号递增顺序输出并列冠军。数字间以 ...原创 2019-05-30 15:37:02 · 665 阅读 · 2 评论 -
1093 字符串A+B (20 分)(pta种gets报错解决)
1093 字符串A+B (20 分)给定两个字符串 A 和 B,本题要求你输出 A+B,即两个字符串的并集。要求先输出 A,再输出 B,但重复的字符必须被剔除。输入格式:输入在两行中分别给出 A 和 B,均为长度不超过 106 的、由可见 ASCII 字符 (即码值为32~126)和空格组成的、由回车标识结束的非空字符串。输出格式:在一行中输出题面要求的 A 和 B 的和。输...原创 2019-05-30 18:11:11 · 932 阅读 · 0 评论 -
1051 复数乘法 (15 分)最后 2 3 测试点问题(负,正浮点数0.00的取法)(保留两位)
复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i2 =−1;也可以写成极坐标下的指数形式 (R×e(Pi) ),其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角形式 (R(cos§+isin§)。现给定两个复数的 R 和 P,要求输出两数乘积的常规形式。输入格式:输入在一行中依次给出两个复数的 R1 , ...原创 2019-05-09 13:28:47 · 599 阅读 · 0 评论 -
PAT1030 完美数列 (25 分)运行超时问题
现上代码,后面分析#include<stdio.h>#include<string.h>#include <algorithm> using namespace std;int main(){ int count=1; int N,i,m=N,j; int number[100001]; double p; scanf("%d %lf",&...原创 2019-05-01 13:24:44 · 553 阅读 · 0 评论 -
PAT1029 旧键盘 (20 分)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入格式:输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。输出格式:按照发现顺序,在一行中输...原创 2019-05-01 00:24:18 · 177 阅读 · 0 评论 -
1040 有几个PAT (25 分)
我的思路如下:先统计整个字符串中的T出现的次数用T记录。然后遍历字符串,遇到A就算这个A之前的P*T的个数+sum遇到‘P’就使P得次数+1,‘T’就使T的次数-1,因为我们算的时候只是在乎A左边P和右边 T的次数,在遍历的时候遇到A表示下一个A左边多了一个P,遇到P表示下一个A的右边少了一个T,这样的话就是一种动态的计算。#include<stdio.h>int mai...原创 2019-05-04 16:52:55 · 371 阅读 · 0 评论 -
PAT1026 程序运行时间 (15 分)C语言(非标准)
要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数 f 的运行时间,我们只要在调用 f 之前先调用 clock(),获得一个时钟打点数...原创 2019-04-29 23:20:48 · 109 阅读 · 0 评论 -
Pat1048 数字加密 (20 分)
本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入格式:输入在一行中依次给出 A 和 B,均为不超过 100 ...原创 2019-05-08 17:26:08 · 173 阅读 · 0 评论 -
1027 打印沙漏 (20 分)
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。输入格式:输入在一行给出1个正整数N(≤1000)和一个符号,...原创 2019-04-30 16:53:23 · 119 阅读 · 0 评论 -
PAT1020 月饼 (25 分)
测试点3的问题在于剩余的需求还存在,但是库存没有了,我的前面的判断出循环的条件是需求没了并且N不是0,修改在于当前种类的月饼库存小于剩余需求,并且此种类是排序后的嘴一个元素#include<stdio.h>struct product{ double save; double sumprice; double per;//单价用来最为选择的标准 };void sor...原创 2019-04-26 21:38:21 · 246 阅读 · 0 评论 -
1019 数字黑洞 (20 分)
测试点,2,5不过。2.回顾题目后发现是在输出的地方没有对四位数做限制,而是直接输出两数之差(0999和999),5.就是在题目的一句话的含义,6174以差的形式输出,我之前的代码是直接放到循环的开头判断输入的是否是6174,否则…改了后是在算出差之后再判断是否是6174.AC码如下#include<stdio.h>void sort(int *a,int n)//升序排序 ...原创 2019-04-26 16:42:17 · 460 阅读 · 0 评论 -
PAT1012 数字分类 (20 分)
测试点8 错误1012 数字分类 (20 分)给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:A1 = 能被 5 整除的数字中所有偶数的和;A2 = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1 −n2 +n3 −n4 ⋯;A3 = 被 5 除后余 2 的数字的个数;A4...原创 2019-04-24 14:28:50 · 161 阅读 · 0 评论 -
pat1008 数组元素循环右移问题 (20 分)
一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0 A1 ⋯AN−1 )变换为(AN−M ⋯AN−1 A0 A1 ⋯AN−M−1 )(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格...原创 2019-04-23 12:51:17 · 161 阅读 · 0 评论 -
1007 素数对猜想 (20 分)
第一次交的时候显示运行超时,死循环?还是值太大?排除第一种,在网上参考别人的博客后有以下两点优化。1.对于<=2的数字是可以略过,循环从i=3开始,每次i=i+2,偶数一定不是奇数,减少判断2.在素数判断时,循环的上限为sqrt(n)(闭区间)代码如下:#include<stdio.h>#include<math.h>int prime(int n){...原创 2019-04-22 18:17:56 · 107 阅读 · 0 评论 -
1005 继续(3n+1)猜想 (25 分)
在这个题提交的时候出现测试点3 4 段错误,应该是访问越界问题,参考网上一位博主解决段错误,真觉乃神人也,就是在arry[n]的n在变换时候如果n大于题目要求的100,那就不记录,反正也不会从他开始输出,就跳过。#include<stdio.h>int main(){ int b[101]={0};//记录输入的数 0是初始化,-1表示在过程中被覆盖过 int i,n,nu...原创 2019-04-22 17:21:57 · 158 阅读 · 0 评论 -
1028 人口普查 (20 分)
某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数 N,取值在(0,105 ];随后 N 行,每行给出 1 个人的...原创 2019-04-30 20:34:55 · 184 阅读 · 0 评论 -
PAT1050 螺旋矩阵 (25 分)
本题要求将给定的 N 个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为 m 行 n 列,满足条件:m×n 等于 N;m≥n;且 m−n 取所有可能值中的最小值。输入格式:输入在第 1 行中给出一个正整数 N,第 2 行给出 N 个待填充的正整数。所有数字不超过 104 ,相邻数字以空格分隔。输出格式:...原创 2019-05-08 23:05:55 · 261 阅读 · 0 评论 -
PAT 乙级 1062 最简分数 (20 分)(测试点1的问题)
一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0。最简分数是指分子和分母没有公约数的分数表示形式。现给定两个不相等的正分数 N1 /M1 和 N2 /M2 ,要求你按从小到大的顺序列出它们之间分母为 K 的最简分数。输入格式:输入在一行中按 N/M 的格式给出两个正分数,随后是一个正整数分母 K,其间以空格分隔。题目保证给出的所有整数都不...原创 2019-05-13 20:49:42 · 681 阅读 · 0 评论 -
1094 谷歌的招聘 (20 分)(java)测试点2和nextLine和CharAt函数问题
输入在第一行给出 2 个正整数,分别是 L(不超过 1000 的正整数,为数字长度)和 K(小于 10 的正整数)。接下来一行给出一个长度为 L 的正整数 N。输出格式:在一行中输出 N 中最早出现的 K 位连续数字所组成的素数。如果这样的素数不存在,则输出 404。注意,原始数字中的前导零也计算在位数之内。例如在 200236 中找 4 位素数,0023 算是解;但第一位 2 不能被当成 0...原创 2019-05-31 16:14:12 · 900 阅读 · 0 评论