![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT(乙级)题解
天上掉下个我
下一站,高老庄
展开
-
PAT(乙级)题解1076C++实现
Wifi密码下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。谢谢合作!!~”—— 老师们为了促进学生学习也是拼了…… 本题就要求你写程序把一系列题目的答案按照卷子上给出的对应关系翻译成 wifi 的密码。这里简单假设每道选择题都有 4 个选项,有且只有 1 个正确答案。输入格式:输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行按照 编原创 2021-09-10 21:48:12 · 115 阅读 · 0 评论 -
PAT(乙级)题解1088C++实现
三人行子曰:“三人行,必有我师焉。择其善者而从之,其不善者而改之。”本题给定甲、乙、丙三个人的能力值关系为:甲的能力值确定是 2 位正整数;把甲的能力值的 2 个数字调换位置就是乙的能力值;甲乙两人能力差是丙的能力值的 X 倍;乙的能力值是丙的 Y 倍。请你指出谁比你强应“从之”,谁比你弱应“改之”。输入格式:输入在一行中给出三个数,依次为:M(你自己的能力值)、X 和 Y。三个数字均为不超过 1000 的正整数。输出格式:在一行中首先输出甲的能力值,随后依次输出甲、乙、丙三人与你的关系:如果其原创 2021-09-10 13:39:30 · 79 阅读 · 0 评论 -
PAT(乙级)题解1087C++实现
有多少不同的值输入格式:输入给出一个正整数 N(2≤N≤104)。输出格式:在一行中输出题面中算式取到的不同值的个数。输入样例:2017输出样例:1480思路:利用set的去重复功能和它自带的计数功能即可。实现:#include <iostream>#include <set>using namespace std;void test(){ int a; cin>>a; set<int>s;原创 2021-09-10 12:38:26 · 95 阅读 · 0 评论 -
PAT(乙级)题解1086C++实现
就不告诉你做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。输入格式:输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。输出格式:在一行中倒着输出 A 和 B 的乘积。输入样例:5 7输出样例:53思路:利用STL的队列从结果的末位向高位取数输入队列中,先进先出即可。实现:#include <iostream>#include <原创 2021-09-10 09:03:12 · 113 阅读 · 0 评论 -
PAT(乙级)题解1013C++实现
数素数输入格式:输入在一行中给出 M 和 N,其间以空格分隔。输出格式:输出从 P m到 P n的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27输出样例:11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 83 8997 101 103思路:提前用素数判断函数对前10 4个素数算出来,在根据区间输出即可。实现:#include <iostream>#inclu原创 2021-09-09 11:11:58 · 123 阅读 · 0 评论 -
PAT(乙级)题解1018C++实现
锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第 1 行给出正整数 N(≤10 5),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。输出格式:输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1原创 2021-09-08 20:00:34 · 62 阅读 · 0 评论 -
PAT(乙级)题解1012 C++实现
数字分类输入格式:每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。输出格式:对给定的 N 个正整数,按题目要求计算 A 1 ~A 5 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。若其中某一类数字不存在,则在相应位置输出 N。输入样例:13 1 2 3 4 5 6 7 8 9 10 20 16 18输出样例:30 11 2 9.7 9思路:依次对每个数字进行判断原创 2021-09-08 18:50:45 · 117 阅读 · 0 评论 -
PAT(乙级)题解1026C++实现
程序运行时间要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数 f 的运行时间,我们只要在调用 f 之前先调用 clock(),获得一个时钟打点数 C1;在 f 执行完成后再调用 clock(),获得另一个时钟打点数 C2;两次获得的时钟打点数原创 2021-09-08 16:11:58 · 105 阅读 · 0 评论 -
PAT(乙级)题解1046 C++实现
划拳划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。输入格式:输入第一行先给出一个正整数 N(≤100),随后 N 行,每行给出一轮划拳的记录,格式为:甲喊 甲划 乙喊 乙划其中喊是喊出的数字,划是划出的数字,均为不超过 100 的正整数(两只手一原创 2021-09-07 21:44:59 · 68 阅读 · 0 评论 -
PAT(乙级)题解1043C++实现
输出PATest给定一个长度不超过 104的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest… 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过 104的、仅由英文字母构成的非空字符串。输出格式:在一行中按题目要求输出排序后的字符串。题目保证输出非空。输入样例:redlesPayBestPATTopTeePHPere原创 2021-09-07 20:59:18 · 94 阅读 · 0 评论 -
PAT(乙级)题解1042C++实现
字符统计请编写程序,找出一段给定文字中出现最频繁的那个英文字母。输入格式:输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。输出格式:在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。输入样例:This is a simple TEST. There ARE numbers and other原创 2021-09-07 18:58:50 · 113 阅读 · 0 评论 -
PAT(乙级)题解1036C++实现
跟奥巴马一起编程美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出格式:输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的 50%(四舍五入取整)原创 2021-09-05 13:21:10 · 69 阅读 · 0 评论 -
PAT(乙级)题解1016C++实现
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-09-04 22:07:43 · 89 阅读 · 0 评论 -
PAT(乙级)题解1011C++实现
输入格式:输出格式:输入样例:输出样例:思路:实现:原创 2021-09-03 15:28:39 · 90 阅读 · 0 评论 -
PAT(乙级)题解1009C++实现
说反话给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Here I Come输出样例:Come I Here World Hello思路:利用二维数组的倒序输出即可。原创 2021-09-02 15:43:21 · 102 阅读 · 0 评论 -
PAT(乙级)题解1008C++实现
数组元素循环右移问题输入格式:每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。输出格式:在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。输入样例:6 21 2 3 4 5 6输出样例:5 6 1 2 3 4思路:因为不可以创建新的数组,可以利用a=a+b;b=a-b;a=a-b;的方法进行交换。注意移动的次数可能大于数组的长度,需要进行取余计算。实现:#include <iostr原创 2021-09-02 12:24:24 · 118 阅读 · 0 评论 -
PAT(乙级)题解1007C++实现
输入格式:输出格式:输入样例:输出样例:思路:实现:原创 2021-09-02 10:23:57 · 102 阅读 · 0 评论 -
PAT(乙级)题解1006C++实现
换个格式输出整数让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出 n。输入样例:234输出样例:BBSSS1234思路:关键在于找到整个字符串大原创 2021-09-01 15:23:48 · 90 阅读 · 0 评论 -
PAT(乙级)题解1005C++实现
继续(3n+1)猜想卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了,我们称 5、8、4、2 是被 3“覆盖”的数。我们称一个数列中的某个数 n 为“关键数”,如果 n 不能被原创 2021-09-01 11:00:51 · 108 阅读 · 0 评论 -
PAT(乙级)题解1004C++实现
成绩排名读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含 1 个测试用例,格式为第 1 行:正整数 n第 2 行:第 1 个学生的姓名 学号 成绩第 3 行:第 2 个学生的姓名 学号 成绩 ... ... ...第 n+1 行:第 n 个学生的姓名 学号 成绩其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。输出格式:对每原创 2021-08-30 23:18:33 · 119 阅读 · 0 评论 -
PAT(乙级)题解1003C++实现
我要通过!“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母原创 2021-08-30 22:31:40 · 59 阅读 · 0 评论 -
PAT(乙级)题解1002C++实现
写出这个数读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10 100。输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu思路:利用字符串接收数据,再依次提取相加,最后利用deque接收字符类型,然后输出(最后要将第一个原创 2021-08-30 15:16:04 · 165 阅读 · 0 评论 -
PAT(乙级)题解1001C++实现
害死人不偿命的(3n+1)猜想卡拉兹(Callatz)猜想:对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超原创 2021-08-30 14:14:44 · 76 阅读 · 0 评论