![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT乙级
小程小程,一事无成
这个作者很懒,什么都没留下…
展开
-
组个最小数 (20)
每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。10个数字的总个数不超过50,且至少拥有1个非0的数字。现给定数字,请编写程序输出能够组成的最小的数。在一行中输出能够组成的最小的数。原创 2023-08-12 15:04:44 · 238 阅读 · 0 评论 -
D进制的A+B (20)
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。输入在一行中依次给出3个整数A、B和D。输出A+B的D进制数。原创 2023-08-12 14:18:18 · 57 阅读 · 0 评论 -
月饼 (25)
样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是卖出全部15万吨第2种月饼、以及5万吨第3种月饼,获得72 + 45/2 = 94.5(亿元)。每个测试用例先给出一个不超过1000的正整数N表示月饼的种类数、以及不超过500(以万吨为单位)的正整数D表示市场最大需求量。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。原创 2023-08-12 12:59:03 · 33 阅读 · 0 评论 -
数字黑洞 (20)
否则将计算的每一步在一行内输出,直到6174作为差出现,输出格式见样例,每行中间没有空行。题目挺简单,这道题解应该算比较简明的了,需要熟悉string的insert方法,还有sort函数,stoi string转int类型以及转string类型的函数to_string。给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。原创 2023-08-12 10:36:09 · 21 阅读 · 0 评论 -
锤子剪刀布 (20)
输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代。输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。简单的if-else 就是比较繁琐。一,则输出按字母序最小的解。原创 2023-08-11 16:52:11 · 36 阅读 · 0 评论 -
A除以B (20)
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。"A是不超过1000位的正整数",这题A显然不能用整数类型,应该用string类型,模拟手动除法得到商和余数。输入在1行中依次给出A和B,中间以1空格分隔。在1行中依次输出Q和R,中间以1空格分隔。原创 2023-08-11 14:45:22 · 24 阅读 · 0 评论 -
部分A+B (15)
正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。现给定A、DA、B、DB,请编写程序计算PA + PB。在一行中输出PA + PB的值。原创 2023-08-11 10:22:22 · 25 阅读 · 1 评论 -
德才论 (25)
输出第1行首先给出达到最低分数线的考生人数M,随后M行,每行按照输入格式输出一位考生的信息,考生按输入中说明的规则从高到低排序。随后N行,每行给出一位考生的信息,包括:准考证号、德分、才分,其中准考证号为8位整数,德才分为区间[0, 100]内的整数。H(原创 2023-08-10 23:41:32 · 41 阅读 · 1 评论 -
福尔摩斯的约会 (20)
大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母'D',代表星期四;第2对相同的字符是'E',那是第5个英文字母,代表一天里的第14个钟头(于是一天的0点到23点由数字0到9、以及大写字母A到N表示);在一行中输出约会的时间,格式为“DAY HH:MM”,其中“DAY”是某星期的3字符缩写,即MON表示星期一,TUE表示星期二,WED表示星期三,THU表示星期。题目输入保证每个测试存在唯一解。原创 2023-07-24 01:17:32 · 24 阅读 · 0 评论 -
数素数 (20)
令Pi表示第i(i从1开始计数)个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。简单题 需要注意的是格式和不要超时 尽量避免傻傻地遍历0-10000的素数判断。输入在一行中给出M和N,其间以空格分隔。学会使用动态数组vector。原创 2023-07-24 00:24:02 · 53 阅读 · 0 评论 -
数字分类 (20)
对给定的N个正整数,按题目要求计算A1~A5并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;然后给出N个不超过1000的待分类的正整数。A4 = 被5除后余3的数字的平均数,精确到小数点后1位;每个测试用例先输入一个不超过1000的正整数N。若其中某一类数字不存在,则在相应位置输出“N”。A1 = 能被5整除的数字中所有偶数的和;A5 = 被5除后余4的数字中最大数字。A3 = 被5除后余2的数字的个数;原创 2023-07-22 00:41:15 · 32 阅读 · 0 评论 -
A+B和C (15)
对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。给定区间[-2^31, 2^31]内的3个整数A、B和C,请判断A+B是否大于C。使用long long 数据类型。原创 2023-07-21 23:51:19 · 31 阅读 · 1 评论 -
一元多项式求导 (25)
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。这题不难,但是输出案例有点坑 输入案例只输入了7个数 输出案例只有3对。也就是说还要区别到输漏和输入系数指数均为0的情况。输入系数指数均为0时输出“0 0”原创 2023-07-19 00:25:52 · 25 阅读 · 0 评论 -
数组元素循环右移问题 (20)
一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1 ……这题要求不能使用另外数组做,确实难到我了,看了柳神的代码,思路很巧妙,利用vector特性以及头文件里的翻转函数三次翻转数组,感觉自己思维太僵化了,这都没想出来。注意reverse函数中括号里的参数不是数组的位置,"begin(a)+m"中的m为要翻转数组中的元素个数,代码中显示了reverse函数的两种用法,翻转数组和翻转向量。原创 2023-07-15 01:02:32 · 170 阅读 · 1 评论 -
说反话 (20)
测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。也可以用reverse函数翻转string数组 但是用<stack>更简单一点。给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。每个测试用例的输出占一行,输出倒序后的句子。原创 2023-07-15 01:17:28 · 21 阅读 · 1 评论 -
换个格式输出整数 (15)
让我们用字母B来表示“百”、字母S表示“十”,用“12...n”来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数。应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。每个测试输入包含1个测试用例,给出正整数n(<1000)。每个测试用例的输出占一行,用规定的格式输出n。原创 2023-07-14 00:36:53 · 39 阅读 · 1 评论 -
继续(3n+1)猜想 (25)
每个测试输入包含1个测试用例,第1行给出一个正整数K(原创 2023-07-14 00:38:11 · 25 阅读 · 1 评论 -
成绩排名 (20)
其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第2行是成绩最低学生的姓名和学号,字符串间有1空格。读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。第n+1行:第n个学生的姓名 学号 成绩。第2行:第1个学生的姓名 学号 成绩。第3行:第2个学生的姓名 学号 成绩。每个测试输入包含1个测试用例,格式为。原创 2023-07-05 00:07:24 · 31 阅读 · 0 评论 -
我要通过!(20)
本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。3. 如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a, b, c 均或者是空字符串,或者是仅由字母 A 组成的字符串。2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;每个字符串的检测结果占一行,如果该字符串可以获得“答案正确”,则输出YES,否则输出NO。拜读了柳神的题解代码,感觉受益匪浅!原创 2023-07-03 23:53:22 · 27 阅读 · 1 评论 -
害死人不偿命的(3n+1)猜想 (15)
对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,我们今天的题目不是证明卡拉兹猜想,而是对给定的任一int范围内的正整数n,简单地数一下,需要多少步(砍几下)才能得到n=1?结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……每个测试输入包含1个测试用例,即给出自然数n的值。原创 2023-07-02 00:15:23 · 35 阅读 · 1 评论 -
写出这个数 (20)
在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。也可以理解为 sum的值为s[i]的ASCII码值-'0'的ASCII码值。每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。在上栏找到工具->编译选项,添加-std=c++11。s[i]符号被强制转int型。原创 2023-07-02 00:12:37 · 31 阅读 · 1 评论