PAT
Matrix990
软工在读
展开
-
PAT乙级题解——1012 数字分类 (20分)
给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:输入格式:每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。输出格式:对给定的 N 个正整数,按题目要求计算 A1~A5并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。若其中某一类数字不存在,则在相应位置输出 N。输入样例 1:13 1 2 3 4 5 6 7 8 9 10 20 16 18输出样例 1:原创 2020-09-26 16:50:11 · 382 阅读 · 0 评论 -
PAT乙级题解——1008 数组元素循环右移问题 (20分)
#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){ int n,m,temp; vector<int> v; cin >> n >> m; m %= n; while (n--) { cin >> temp; v.push.原创 2020-09-19 17:29:56 · 160 阅读 · 0 评论 -
PAT乙级题解——1018 锤子剪刀布 (20分)
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第 1 行给出正整数 N(≤10^5 ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。输出格式:输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格分原创 2020-09-19 10:55:23 · 646 阅读 · 0 评论 -
PAT乙级题解——1046 划拳 (15分)
划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。输入格式:输入第一行先给出一个正整数 N(≤100),随后 N 行,每行给出一轮划拳的记录,格式为:甲喊 甲划 乙喊 乙划其中喊是喊出的数字,划是划出的数字,均为不超过 100 的正整数(两只手一起划原创 2020-09-14 14:59:27 · 289 阅读 · 0 评论 -
PAT乙级题解——1013 数素数 (20分)
#include <iostream>#include <vector>using namespace std;bool IsPrime(int n){ if(n <= 1){ return false; } for (int i = 2; i * i <= n; i++) { if ((n % i) == 0){ return false; } }.原创 2020-09-14 14:30:06 · 165 阅读 · 0 评论 -
PAT乙级题解——1016 部分A+B (15分)
#include <iostream>#include <string>using namespace std;//逐个对比,合成新整数int combine(string n, int dn){ int temp = 0; for (int i = 0; i < n.length(); i++) { if (n[i] - '0' == dn) { temp = temp * 10 + dn; ..原创 2020-09-14 11:09:53 · 164 阅读 · 0 评论 -
PAT乙级题解—— 1061 判断题 (15分)
判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。输入格式:输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”。随后 N 行,每行给出一个学生的解答。数字间均以空格分隔。输出格式:按照输入的顺序输出每个学生的得分,每个分数占一行。输入样例:3 62 1 3 3 4 50 0 1 0 1 10 1 1原创 2020-09-12 16:25:54 · 317 阅读 · 0 评论 -
PAT乙级题解——1066 图像过滤 (15分)
图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。输入格式:输入在第一行给出一幅图像的分辨率,即两个正整数 M 和N(0<M,N≤500),另外是待过滤的灰度值区间端点 A 和 B(0≤A<B≤255)、以及指定的替换灰度值。随后 M 行,每行给出 N 个像素点的灰度值,其间以空格分隔。所有灰度值都在 [0, 255] 区间内。输出格式:输出按要求过滤后的图像。即输出 M 行,每行原创 2020-09-12 16:06:58 · 219 阅读 · 0 评论 -
PAT乙级题解—— 1071 小赌怡情 (15分)
常言道“小赌怡情”。这是一个很简单的小游戏:首先由计算机给出第一个整数;然后玩家下注赌第二个整数将会比第一个数大还是小;玩家下注 t 个筹码后,计算机给出第二个数。若玩家猜对了,则系统奖励玩家 t 个筹码;否则扣除玩家 t 个筹码。注意:玩家下注的筹码数不能超过自己帐户上拥有的筹码数。当玩家输光了全部筹码后,游戏就结束。输入格式:输入在第一行给出 2 个正整数 T 和 K(≤ 100),分别是系统在初始状态下赠送给玩家的筹码数、以及需要处理的游戏次数。随后 K 行,每行对应一次游戏,顺序给出 4 个数原创 2020-09-12 15:39:34 · 368 阅读 · 0 评论 -
PAT乙级题解——1086 就不告诉你 (15分)
做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。输入格式:输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。输出格式:在一行中倒着输出 A 和 B 的乘积。输入样例:5 7输出样例:53#include <iostream>#include <string>#include <algorithm>using n原创 2020-09-12 15:04:56 · 692 阅读 · 0 评论 -
PAT乙级题解——1091 N-自守数 (15分)
#include <iostream>#include <vector>using namespace std;int main(){ int m,k,tem; string strk,strProduct; cin >> m; while(m--){ int flag = 0; cin >> k; for (int n = 1; n < 10; n++) { .原创 2020-09-12 14:44:40 · 156 阅读 · 0 评论 -
PAT乙级题解——1026 程序运行时间 (15分)
要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数 f 的运行时间,我们只要在调用 f 之前先调用 clock(),获得一个时钟打点数 C1;在 f 执行完成后再调用 clock(),获得另一个时钟打点数 C2;两次获得的时钟打点数之差 (C2-原创 2020-09-12 13:52:47 · 765 阅读 · 0 评论 -
PAT乙级题解——1011 A+B 和 C (15分)
#include <iostream>using namespace std;int main(){ long long int a,b,c; int n; cin >> n; for (int i = 1; i <= n ; i++) { cin >> a >> b >> c; cout << "Case #" << i << ": ".原创 2020-09-12 11:44:02 · 143 阅读 · 0 评论 -
PAT乙级题解——1004 成绩排名 (20分)
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含 1 个测试用例,格式为第 1 行:正整数 n第 2 行:第 1 个学生的姓名 学号 成绩第 3 行:第 2 个学生的姓名 学号 成绩… … …第 n+1 行:第 n 个学生的姓名 学号 成绩其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。输出格式:对每个测试用例输出 2 行,第原创 2020-09-12 11:31:14 · 176 阅读 · 0 评论 -
PAT乙级题解——1040 有几个PAT (25分)
字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位§,第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位§,第 4 位(A),第 6 位(T)。现给定字符串,问一共可以形成多少个 PAT?输入格式:输入只有一行,包含一个字符串,长度不超过105 ,只包含 P、A、T 三种字母。输出格式:在一行中输出给定字符串中包含多少个 PAT。由于结果可能比较大,只输出对 1000000007 取余数的结果。输入样例:APPAPT输出样例:2原创 2020-08-13 16:51:23 · 185 阅读 · 0 评论 -
PAT乙级题解——1048 数字加密 (20分)
本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入格式:输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。输出格式:在一行中输出加密后的结果。输入样例:1234567 368782原创 2020-07-27 22:22:01 · 200 阅读 · 0 评论 -
PAT乙级题解——1031 查验身份证 (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现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。输入格式:输入第一行给出正整数N(≤100)是输入的原创 2020-07-25 16:17:16 · 282 阅读 · 0 评论 -
PAT乙级题解——1021 个位数统计 (15分)
非常简单的一题,利用数组下标统计一下数量就好#include <iostream>using namespace std;int main(){ int arr[10] = {0}; string s; cin >> s; for (int i = 0; i < s.length(); i++) { arr[s[i] - '0']++; } for (int j = 0; j < 10; j++) {.原创 2020-07-24 11:10:36 · 155 阅读 · 0 评论 -
PAT乙级题解——1014 福尔摩斯的约会 (20分)
疑惑:不是很理解题目里的这一段描述,一开始理解成第一对【大写英文字母】和第二对【字符】查找的顺序是各自独立的,以为第二对相同的字符也要从头开始找,卡了半天。看了别人的题解才知道第二个相同的字符要从第一个【大写英文字母】之后开始找前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第 2 对相同的字符是 E ,那是第 5 个英文字母,代表一天里的第 14 个钟头(于是一天的 0 点到 23 点由数字 0 到 9、以及大写字母 A 到 N 表示)#inclu.原创 2020-07-24 10:58:40 · 231 阅读 · 0 评论 -
PAT乙级题解——1006 换个格式输出整数 (15分)
让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如234应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出 n。输入样例 1:234输出样例 1:BBSSS1234输入样例 2:23输出样例 2原创 2020-07-22 11:32:32 · 180 阅读 · 0 评论 -
PAT乙级题解)——1023 组个最小数 (20分)
给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超过 50,且至少拥有 1 个非 0 的数字。输出格式:在一行中输出能够组成的最小的数原创 2020-07-22 10:01:01 · 225 阅读 · 0 评论 -
PAT乙级题解——1009 说反话 (20分)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Here I Come输出样例:Come I Here World Hello还是反向输出,注意一下末尾不要有空格就好原创 2020-07-18 09:10:01 · 234 阅读 · 0 评论 -
PAT乙级题解——1022 D进制的A+B (20分)
题目描述:输入两个非负 10 进制整数 A 和 B ( ≤ (2^30) − 1),输出 A+B 的 D (1 < D ≤ 10)进制数。输入格式:输入在一行中依次给出 3 个整数 A、B 和 D。输出格式:输出 A+B 的 D 进制数。输入样例:123 456 8输出样例:1103#include <iostream>#include <stack>using namespace std;stack<int> printDNum(原创 2020-07-17 12:57:16 · 210 阅读 · 0 评论 -
PAT乙级题解——1093 字符串A+B (20分)
题目描述:给定两个字符串 A 和 B,本题要求你输出 A+B,即两个字符串的并集。要求先输出 A,再输出 B,但重复的字符必须被剔除。输入格式:输入在两行中分别给出 A 和 B,均为长度不超过 10^6的、由可见 ASCII 字符 (即码值为32~126)和空格组成的、由回车标识结束的非空字符串。输出格式:在一行中输出题面要求的 A 和 B 的和。输入样例:This is a sample testto show you_How it works输出样例:This ampletow原创 2020-07-17 10:25:58 · 318 阅读 · 0 评论 -
PAT乙级题解——1036 跟奥巴马一起编程 (15分)
题目描述:#include <iostream>#include <cmath>using namespace std;int main(){ int col,row; char c; cin >> col >> c; if(col % 2 == 0){ row = col/2; }else{ //注意要强制转换结果类型,否则表达式结果小数部分被截去,无法对小数点后四舍五入原创 2020-07-16 09:48:47 · 262 阅读 · 0 评论 -
PAT乙级题解——1032 挖掘机技术哪家强 (20分)
题目描述:为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第 1 行给出不超过 10^5 的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式:在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。输入样例:63 652 801 1002 70原创 2020-07-14 09:35:02 · 340 阅读 · 0 评论 -
PAT乙级题解——1002 写出这个数 (20分)
#include <iostream>#include <string>#include <cstddef>using namespace std;int main(){ string str[10]= {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; string s; int sum = 0; cin >> s; for(size_.原创 2020-07-13 19:56:26 · 394 阅读 · 0 评论 -
PAT乙级题解——1001 害死人不偿命的(3n+1)猜想 (15分)
1001 害死人不偿命的(3n+1)猜想 (15分)#include <iostream>using namespace std;int main(){ int n; int step = 0; cin >> n; while(n!=1){ if(n % 2 == 0){ //偶数 n = n / 2; }else{ //奇数原创 2020-07-13 15:15:31 · 249 阅读 · 0 评论