![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT乙级练习
文章平均质量分 60
是基德吖
阿里云专家博主,计算机科学与技术专业的大学生
展开
-
【PAT】1009 说反话
定义一个字符串数组s[100],定义字符串变量a,和整型变量x,将x初始化为0。用while(cin>>a) 读入 以空格分隔的各个字符串,令s[x]=a,之后x++ 将所有被空格分开的字符串存入。最后倒着遍历s数组即可。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。每个测试用例的输出占一行,输出倒序后的句子。原创 2024-05-06 14:34:15 · 309 阅读 · 1 评论 -
【PAT】1008 数组元素循环右移问题
一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个数循环移至最前面的M个位置)。先输出最后m个数组元素,再输出下标从0开始到下标为n-m-2的数组元素,最后单独输出a[n-m-1](因为最后一个数后面不能带空格,所以单独输出)每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。原创 2024-05-06 14:28:29 · 195 阅读 · 0 评论 -
【PAT】1007 素数对猜想
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。先求出1~n的所有素数,存到a数组中。开一个变量ans记录答案,并初始化为0,再遍历a数组,如果当前数组元素和上一个数组元素差值为2,则计数ans++。(原创 2024-05-06 13:50:07 · 308 阅读 · 0 评论 -
【PAT】1006 换个格式输出整数
一个三位数,n/100可以提取出百位,n/10%10可以提取出十位,n%10可以提取出个位。每个测试输入包含 1 个测试用例,给出正整数 n(原创 2024-05-01 12:48:50 · 21 阅读 · 0 评论 -
【PAT】1005 继续(3n+1)猜想
例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了,我们称 5、8、4、2 是被 3“覆盖”的数。每个测试输入包含 1 个测试用例,第 1 行给出一个正整数 K (原创 2024-05-01 12:32:51 · 524 阅读 · 0 评论 -
【PAT】1004 成绩排名
均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。结构体排序板题,不要忘了sort()函数里面写cmp。每个测试输入包含 1 个测试用例,格式为。原创 2024-04-29 23:50:16 · 124 阅读 · 0 评论 -
【PAT】1003 我要通过!
用map mp 记录每种字符个数,变量p记录字符‘P’在字符串的位置,变量t记录字符‘T’在字符串的位置,并且将p和t都初始化为0。p*(t-p-1)==s.size()-1-t ——> 字符‘P’前面那段A的数量*中间那段A的数量=字符‘P’后面那段A的数量。=0&&t-p>1 ——> 字符‘P’和‘T’之间至少有一个字符‘A’mp['P']==1&&mp['T']==1 ——> 字符‘P’和‘T’只出现一次。”大派送 —— 只要读入的字符串满足下列条件,系统就输出“原创 2024-04-29 23:46:09 · 205 阅读 · 0 评论 -
【PAT】1002 写出这个数
先以字符串读入n,然后开一个整型变量sum记录字符串各位字符转为数字的和,开一个str[ ]数组,让它的下标0~9依次映射为"ling","yi","er","san","si","wu","liu","qi","ba","jiu"。法二:步骤与法一类似,只是没有用to_string()函数,而是用了一个数组a[ ]来存取sum的每一位(用sum%10和sum/=10来获得sum的每一位),最后从右往左遍历数组a,依次输出str[a[i]-'0']即可。这里保证 n 小于 10100。原创 2024-04-26 11:38:43 · 401 阅读 · 0 评论 -
【PAT】1001 害死人不偿命的(3n+1)猜想
卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1?n==1时直接输出0,否则按照奇偶性按不同情况给n赋值,开一个cnt变量记录次数,直到n==1时结束while循环。原创 2024-04-26 10:26:25 · 240 阅读 · 0 评论