![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT (Basic Level) Practice
文章平均质量分 50
以梦为马|不负韶华
这个作者很懒,什么都没留下…
展开
-
PAT (Basic Level) 1019 数字黑洞 (20 分)
1.题目描述—请见链接 2.思路解析 本题思路不难想出,但是应该注意几种特殊情况: 1、如果用的是while (s != “6174”)循环,则直接输入6174时,输出结果错误;所以可以使用do-while循环,无论输入的是多少,都可以先循环一次。 2、输入的数字不一定是4位的,因为循环处理的逻辑是按照四位数来设计的,所以每次应该将结果补成4位数。 3.代码 static void Main(string[] args) { string s = Console.Re原创 2021-05-03 10:30:30 · 69 阅读 · 0 评论 -
PAT (Basic Level)1017 A除以B (20 分)
1.题目描述—请见链接 2.思路解析 模拟人工除法的过程,注意A<B的情况 3.代码 static void Main(string[] args) { string[] str = Console.ReadLine().Split(); int b = str[1][0] - '0'; int a = 0; int n1; // 如果前者小于后者,商直接原创 2021-04-30 15:48:22 · 75 阅读 · 1 评论 -
PAT (Basic Level)1015 德才论 (25 分)
1.题目描述—请见链接 2.思路解析 此题有比较复杂的比较策略: 输出第一行首先给出达到最低分数线的考生人数 M,随后 M 行,每行按照输入格式输出一位考生的信息,考生按输入中说明的规则从高到低排序。当某类考生中有多人总分相同时,按其德分降序排列;若德分也并列,则按准考证号的升序输出。 考虑使用c#用于对象比较的两个接口:IComparable和IComparer IComparable IComparer 再要比较的对象的类中实现,可以比较该对象和另外一个对象 在一个单独的类中实现,可原创 2021-04-30 11:59:33 · 83 阅读 · 0 评论 -
PAT (Basic Level) 1008 数组元素循环右移问题 (20 分)
1.题目描述—请见链接 2.思路解析 1、首先可以将这个问题看作把数组ab转换成数组ba(其中a代表数组中前n-p个元素,b代表数组中余下的p个元素,p为循环右移元素个数,n为数组长度)。 先对ab整体求逆,参照数学中的求逆可知:(ab)-1 = b-1a-1 ;然后分别对a和b求逆置,可得 ( b-1)-1 (a-1 )-1 =ba; 2、在逆置之前应该首先判断右移的位数,如果右移位数是数组长度的整数倍,则直接将数组元素输出即可。 3.代码 class Program { st原创 2021-04-28 10:44:35 · 95 阅读 · 0 评论 -
PAT (Basic Level)1007 素数对猜想 (20 分)
1.题目描述—请见链接 2.思路解析 分为两部分考虑: 1、判断数n是否为素数:如果从2到根号n,n能够被其中任意⼀个值整除,则n不是素数;反之,则n为素数。 2、判断相邻两个素数是否为素数对:将前一个素数保存起来,用当前素数减去前一个素数,如果为二,则素数对个数加1。 3.代码 using System; class Program { static void Main(string[] args) { int n = int.Parse(C原创 2021-04-27 20:00:24 · 73 阅读 · 0 评论 -
PAT (Basic Level)1005 继续(3n+1)猜想 (25 分)
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-04-27 13:38:44 · 63 阅读 · 0 评论 -
PAT (Basic Level) 1004 成绩排名 (20 分)
1.题目描述 读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。 输入格式: 每个测试输入包含 1 个测试用例,格式为 第 1 行:正整数 n 第 2 行:第 1 个学生的姓名 学号 成绩 第 3 行:第 2 个学生的姓名 学号 成绩 第 n+1 行:第 n 个学生的姓名 学号 成绩 其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。 输出格式: 对每个测试用例输出 2原创 2021-04-26 21:23:50 · 78 阅读 · 0 评论 -
PAT (Basic Level) 1002 写出这个数 (20 分)
1.题目描述 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。 输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。 输入样例: 1234567890987654321123456789 输出样例: yi san wu 2.思路解析 首先用户键入的整数会以字符串的形式保存; 遍历字符串,让各个位置上的元素相加,此处注意用下标访问字符串元素返回原创 2021-04-26 13:14:06 · 134 阅读 · 0 评论