![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT(乙)
大鲨鱼冲鸭
一步步往上爬~。
个人邮箱:qilong.zhang@std.uestc.edu.cn。
Github: https://github.com/qilong-zhang
展开
-
PAT乙 1044. 火星数字(20)
1044. 火星数字(20)题目地址:1044. 火星数字(20)题目描述: 火星人是以13进制计数的: - 地球人的0被火星人称为tret。 - 地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。 - 火星人将进位以后的12个高位数字分别称为:...原创 2018-05-03 08:08:19 · 260 阅读 · 0 评论 -
PAT乙 1082. 射击比赛 (20)
地址连接:PAT乙1082.射击比赛(20)题目描述: 本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军;谁差得最远,谁就是菜鸟。本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟。我们假设靶心在原点(0,0)。解题过程: 这一题比较简单,只要每次输入一个ID和(x,y)就算一遍距离并更新即可。程序:#include <stdio.h>...原创 2018-04-26 09:27:27 · 279 阅读 · 0 评论 -
PAT乙 1083. 是否存在相等的差 (20)
题目地址:PAT乙1083.是否存在相等的差(20)题目描述: 给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差?易错分析:1. 注意看题目。。要存在相等的差才输出,换言之,只出现一次的差值是不输出的解题过程: 这题可以用map来建立映射,...原创 2018-04-26 11:03:36 · 351 阅读 · 1 评论 -
PAT乙 1084. 外观数列 (20)
题目地址:PAT乙1084.外观数列(20)题目描述:外观数列是指具有以下特点的整数序列:d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述。比如第 2 项表示第 1 项有 1 个 d,所以就是 d1;第 2 项是 1 个 d(对应 d1)和 1 个 1(对应 11),所以第 3 项...原创 2018-04-26 14:51:53 · 417 阅读 · 0 评论 -
PAT乙 1085. PAT单位排行 (25)
题目地址:PAT1085.PAT单位排行(25)易错分析: 这里如果程序没有错,依然会有4、5两个超大测试样例通不过,这里我是通过把能换cin的地方全换成scanf,能换cout的地方全换成printf,最后不负我望,两个都通过了。解题过程: 首先可以建立一个结构体,这样做可以方便排序。另外我用了三个map,分别保存每个学校的学校成绩,报考人数,和学校姓名。最后通过sort排序,按要求...原创 2018-04-26 16:50:25 · 508 阅读 · 0 评论 -
PAT乙 1001. 害死人不偿命的(3n+1)猜想 (15)
题目地址:PAT乙1001.害死人不偿命(3n+1)猜想(15)题目描述:卡拉兹(Callatz)猜想:对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n...原创 2018-04-27 09:40:33 · 260 阅读 · 0 评论 -
PAT乙 1002. 写出这个数 (20)
题目地址:PAT乙1002.写出这个数(20)题目描述:读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。求解过程: 通过自定义一个转换函数transfer来达到数字变拼音的效果,然后...原创 2018-04-27 09:47:18 · 726 阅读 · 0 评论 -
PAT乙 1003. 我要通过!(20)
题目地址:PAT乙1003.我要通过!(20)题目描述:答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串...原创 2018-04-27 17:08:45 · 364 阅读 · 1 评论 -
PAT乙 1004. 成绩排名 (20)
题目地址:PAT乙1004.成绩排名(20)题目描述:读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含1个测试用例,格式为 第1行:正整数n 第2行:第1个学生的姓名 学号 成绩 第3行:第2个学生的姓名 学号 成绩 ... ... ... 第n+1行:第n个学生的姓名 学号 成绩其中姓名和学号均为不超过10个字符的字符串,...原创 2018-04-27 17:17:34 · 175 阅读 · 0 评论 -
PAT乙 1081. 检查密码 (15)
题目地址:PAT1081.检查密码(15)题目介绍: 本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点".",还必须既有字母也有数字。输入第一行给出一个正整数 N(<=100),随后 N 行,每行给出一个用户设置的密码,为不超过80个字符的非空字符串,以回车结束。易错分析:1. 在判...原创 2018-04-26 09:02:38 · 490 阅读 · 0 评论 -
PAT乙 1075.链表元素分类
题目地址:1075.链表元素分类易错分析:1. 可能存在多余结点,即部分结点即使输入了,也不在链表中2. 可能存在大于K的数组不存在元素解题过程: 创建一个结构体数组,并用空间换时间的方法,把地址作为下标,值作为结构体对象,其中存储Data和Next。通过一个三维向量存储属于不同类的元素,最后输出即可。程序:#include <vector>#include <...原创 2018-04-21 17:02:18 · 515 阅读 · 0 评论 -
PAT乙 1080. MOOC期终成绩 (25)
题目地址:PAT1080.MOOC期末成绩(25)题目描述: 对于在中国大学MOOC(http://www.icourse163.org/)学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分(满分100)。总评成绩的计算公式为 G = (G期中x 40% + G期末x 60%),如果 G期中 > G期末;否则...原创 2018-04-25 15:06:13 · 364 阅读 · 0 评论 -
PAT乙 1045. 快速排序(25)
1045. 快速排序(25)题目地址:1045. 快速排序(25)题目描述: 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的N个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元? 例如给定N = 5, 排列是1、3、2、4、5。则: - ...原创 2018-05-03 08:09:58 · 267 阅读 · 0 评论 -
PAT乙 1046. 划拳(15)
1046. 划拳(15)题目地址:1046. 划拳(15)题目描述: 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。 下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。...原创 2018-05-03 08:11:08 · 227 阅读 · 0 评论 -
PAT乙 1048. 数字加密(20)
1048. 数字加密(20)题目地址:1048. 数字加密(20)题目描述: 本题要求实现一种数字加密方法。首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余——这里用J代表10、Q代表11、K代表12;对偶数位,用B的数字减去A的数字,若结果为负数,则再加10。这里令个位为第1位。输...原创 2018-05-03 08:14:39 · 259 阅读 · 0 评论 -
PAT乙 1049. 数列的片段和(20)
1049. 数列的片段和(20)题目地址:1049. 数列的片段和(20)题目描述: 给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列{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)...原创 2018-05-03 08:16:35 · 254 阅读 · 0 评论 -
PAT乙 1050. 螺旋矩阵(25)
1050. 螺旋矩阵(25)题目地址:1050. 螺旋矩阵(25)题目描述: 本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第1个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为m行n列,满足条件:m*n等于N;m>=n;且m-n取所有可能值中的最小值。输入格式: 输入在第1行中给出一个正整数N,第2行给出N个待填充的正整...原创 2018-05-03 08:18:35 · 362 阅读 · 0 评论 -
PAT乙 1076. Wifi密码
题目链接:Wifi密码解题过程:通过在线判断来提高算法的效率。每次遇到T,就判断其选项,输出结果。边判断边输出。程序:#include <stdio.h>#include <stdlib.h>int main(int argc, char const *argv[]){ int N; char choose, flag; scanf("%d", &N)...原创 2018-04-21 11:53:25 · 374 阅读 · 0 评论 -
PAT乙 1073. 多选题常见计分法
题目地址:1073.多选题常见计分方法易错分析:漏选和错选都算错,不要忽略任意一种求解过程:本文用set的count方法来确定学生的输入选项是否在正确答案中,用迭代器遍历正确答案,在用count方法来确定是否有选项漏掉。把这些错误的选项都存在一个数组WrongMat中,最后通过遍历的WrongMat来输出错误的选项结果。程序:#include <stdio.h>#include &l...原创 2018-04-21 14:54:51 · 684 阅读 · 0 评论 -
PAT乙 1005. 继续(3n+1)猜想 (25)
题目地址:PAT乙1005.继续(3n+1)猜想(25)题目描述: 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2、1,则当我们对n=5、8、4、2进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算...原创 2018-04-27 17:22:27 · 195 阅读 · 1 评论 -
PAT乙 1006. 换个格式输出整数 (15)
题目地址:PAT乙1006.换个格式输出整数(15)题目描述: 让我们用字母B来表示“百”、字母S表示“十”,用“12...n”来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数。例如234应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。解题过程: 通过取余和除法操作,进行循环输出程序:#include <iostream>...原创 2018-04-27 17:26:37 · 224 阅读 · 0 评论 -
PAT1019. 数字黑洞 (20)
题目地址:PAT乙1019.数字黑洞(20)题目描述:给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。例如,我们从6767开始,将得到7766 - 6677 = 10899810 - 0189 = 9621...原创 2018-04-29 08:50:08 · 222 阅读 · 0 评论 -
PAT1020. 月饼 (25)
PAT乙1020.月饼(25)题目地址:PAT乙1020.月饼(25)题目描述: 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。 注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别...原创 2018-04-29 08:58:31 · 258 阅读 · 0 评论 -
PAT1021. 个位数统计 (15)
PAT1021. 个位数统计 (15)题目地址:PAT乙1021.个位数统计(15)题目描述: 给定一个k位整数N = dk-1*10k-1 + … + d1*101 + d0 (0<=di<=9, i=0,…,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。输入格式: ...原创 2018-04-29 09:05:29 · 465 阅读 · 0 评论 -
PAT1022. D进制的A+B (20)
PAT乙1022. D进制的A+B (20)题目地址:PAT乙1022. D进制的A+B (20)题目描述: 输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。输入格式: 输入在一行中依次给出3个整数A、B和D。输出格式: 输出A+B的D进制数。程序:#include <i...原创 2018-04-29 09:10:22 · 151 阅读 · 0 评论 -
PAT 1023. 组个最小数 (20)
PAT 1023. 组个最小数 (20)题目地址:PAT乙1023. 组个最小数 (20)题目描述: 给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。 现给定数字,请编写程序输出能够组成的最小的数。输入格式: ...原创 2018-04-29 09:44:32 · 217 阅读 · 0 评论 -
PAT1024. 科学计数法 (20)
1024. 科学计数法 (20)题目地址:PAT乙1024.科学计数法题目描述: 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]”.”[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并...原创 2018-04-29 10:20:15 · 254 阅读 · 0 评论 -
PAT乙1025. 反转链表 (25)
1025. 反转链表 (25)题目地址:1025.反转链表题目描述: 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转。输入格式: 每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址、结点总...原创 2018-04-29 10:24:06 · 213 阅读 · 0 评论 -
PAT乙1026. 程序运行时间(15)
1026. 程序运行时间(15)题目地址:1026. 程序运行时间(15) 题目描述: 要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”。同时还有一个常数CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数...原创 2018-04-29 10:28:09 · 190 阅读 · 0 评论 -
PAT1018. 锤子剪刀布 (20)
题目地址:PAT乙1018.锤子剪刀步(20)题目描述:大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第...原创 2018-04-28 11:41:30 · 333 阅读 · 0 评论 -
PAT1017. A除以B (20)
题目地址:PAT乙1017.A除以B(20)题目描述:本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。输入格式:输入在1行中依次给出A和B,中间以1空格分隔。输出格式:在1行中依次输出Q和R,中间以1空格分隔。程序:#include <iostream>#include <string>...原创 2018-04-28 11:36:24 · 277 阅读 · 0 评论 -
PAT乙 1016. 部分A+B (15)
题目地址:PAT乙1016.部分A+B(15)题目描述:正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。现给定A、DA、B、DB,请编写程序计算PA + PB。输入格式:输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。输出格...原创 2018-04-28 11:34:05 · 218 阅读 · 0 评论 -
PAT乙 1007. 素数对猜想 (20)
题目地址:PAT乙1007.素数对猜想(20)题目描述:让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。解题过程: 我这里采用了一个数组arr来存储所有的素数,这些素数都过遍...原创 2018-04-27 17:33:08 · 235 阅读 · 0 评论 -
PAT乙 1008. 数组元素循环右移问题 (20)
题目地址:PAT乙1008.数组元素循环右移问题(20)题目描述:一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?解题过程: ...原创 2018-04-27 18:33:46 · 250 阅读 · 0 评论 -
PAT乙 1009. 说反话 (20)
题目地址:PAT乙1009.说反话(20)题目描述:给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。...原创 2018-04-28 10:59:00 · 242 阅读 · 0 评论 -
PAT乙 1010. 一元多项式求导 (25)
题目地址:PAT乙1010.一元多项式求导(25)题目描述:设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”...原创 2018-04-28 11:10:03 · 309 阅读 · 0 评论 -
PAT乙 1011. A+B和C (15)
题目地址:PAT乙1011.A+B和C(15)题目描述:给定区间[-231, 231]内的3个整数A、B和C,请判断A+B是否大于C。输入格式:输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。输出格式:对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: fal...原创 2018-04-28 11:16:25 · 289 阅读 · 0 评论 -
PAT乙 1012. 数字分类 (20)
题目地址:PAT乙1012.数字分类(20)题目描述:给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;A3 = 被5除后余2的数字的个数;A4 = 被5除后余3的数字的平均数,精确到小数点后1位;A5 = 被5除后余4的数字中最大数字。输入格式:每个输入...原创 2018-04-28 11:19:37 · 634 阅读 · 0 评论 -
PAT乙 1013. 数素数 (20)
题目地址:PAT乙1013.数素数(20)题目地址:令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。输入格式:输入在一行中给出M和N,其间以空格分隔。输出格式:输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。程序:#include <iostream>#include <math.h...原创 2018-04-28 11:25:42 · 245 阅读 · 0 评论 -
PAT乙 1014. 福尔摩斯的约会 (20)
题目地址:PAT乙1014.福尔摩斯的约会(20)题目描述:大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母'D',代表星...原创 2018-04-28 11:28:33 · 296 阅读 · 0 评论