![](https://img-blog.csdnimg.cn/448e275ed3884a5ebcac334c0e69db85.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PTA
文章平均质量分 75
主要是收录老师之前布置的PTA题目
夏驰和徐策
一个喜欢打游戏的计算机专业学生;这是我的GitHub:https://github.com/XiaChiandXuce
展开
-
2024年华北水利水电大学校赛-正式赛-复盘 7-1 男孩和女孩
分数 300全屏浏览切换布局作者 whl单位 华北水利水电大学最近这段时间有很多男孩子使用漂亮女孩子的头像在社交软件上聊天,这让聊天软件上的人区分屏幕对面的人的性别这件事变得很困难。最近耗子哥在网上和一个使用美女头像的人聊的很开心,但是却不知道对面是男是女。耗子哥很害羞,他不敢问对方要照片或者打视频电话,他只能通过对方的网络昵称来判断对方是男是女,如果昵称中不同字符的数目是奇数,那么对方就是男性,否则是女性,如果对方是男性,那么将不符合耗子哥的心理预期,输出” IGNORE HIM!原创 2024-04-04 18:39:42 · 470 阅读 · 0 评论 -
L2-2 老板的作息表
分数 25全屏浏览题目切换布局作者 陈越单位 浙江大学新浪微博上有人发了某老板的作息时间表,表示其每天 4:30 就起床了。但立刻有眼尖的网友问:这时间表不完整啊,早上九点到下午一点干啥了?本题就请你编写程序,检查任意一张时间表,找出其中没写出来的时间段。原创 2023-10-29 21:08:22 · 878 阅读 · 1 评论 -
L2-1 插松枝
分数 25全屏浏览题目切换布局作者 陈越单位 浙江大学人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上,做成大大小小的松枝。(1)小盒子已经满了,但推送器上取到的松针仍然不满足要求。此时将手中的松枝放到成品篮里,推送器上取到的松针压回推送器,开始下一根松枝的制作。(2)小盒子中最上面的松针不满足要求,但推送器上已经没有松针了。此时将手中的松枝放到成品篮里,开始下一根松枝的制作。(3)手中的松枝干上已经插满了松针,将之放到成品篮里,开始下一根松枝的制作。原创 2023-10-29 19:31:40 · 507 阅读 · 0 评论 -
PTA L1-8 静静的推荐
8。原创 2023-10-28 21:07:37 · 584 阅读 · 2 评论 -
6-3 使用函数输出水仙花数
函数判断number是否为水仙花数,是则返回1,否则返回0。函数PrintN则打印开区间(mn)内所有的水仙花数,每个数字占一行。题目保证100≤m≤n≤10000。从这道题目中,我们能学到以下几点:1. **函数封装和模块化的重要性**:题目要求将某些特定的功能封装为函数,例如判断一个数字是否为水仙花数或打印一个区间内的所有水仙花数。通过这种方式,我们学习如何将问题分解为更小的、可管理的部分,并通过组合这些部分来解决更大的问题。原创 2023-08-22 00:39:22 · 2147 阅读 · 0 评论 -
6-2 使用函数求素数和
其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数PrimeSum返回区间[mn]内所有素数的和。题目保证用户传入的参数m≤n。从这道题中,我们可以学习到以下几点:1. **基础算法的应用**:这道题让我们用到了判断素数的基本算法。对于初学者来说,了解如何判断一个数是否是素数是很重要的。2. **数学原理**:- 了解素数的定义。- 理解为什么判断一个数是否为素数时,只需要检查它不能被2到其平方根之间的任何数整除。原创 2023-08-21 23:44:11 · 663 阅读 · 0 评论 -
6-1 使用函数求奇数和
其中函数even将根据用户传入的参数n的奇偶性返回相应值:当n为偶数时返回1,否则返回0。函数OddSum负责计算并返回传入的N个整数List[]中所有奇数的和。从这道题目中,我们可以学到以下几点:1. **函数的基本概念**:理解函数的定义、声明和调用。题目要求根据给定的函数接口来实现功能,这需要对函数的基本概念有清晰的了解。2. **函数参数与返回值**:题目中的函数需要接收数组和整数作为参数,并返回一个整数结果。这有助于加强对如何传递参数和处理返回值的理解。原创 2023-08-21 23:27:49 · 348 阅读 · 0 评论 -
7-10 查验身份证
从这道题目中,我们能够学习到以下几点:1. **实际应用的算法**:身份证的校验码是为了确保身份证号码的准确性和有效性。这种校验方法在实际生活中是非常常见的,例如银行卡的Luhn算法。学习如何实现和验证这种算法有助于我们理解和处理现实生活中的类似问题。2. **字符串处理**:题目涉及到了字符串的基础操作,例如遍历字符串、字符与数字的转换等。这增强了我们处理字符串数据的能力。3. **数组的应用**:题目中使用了权重数组和校验码数组,通过数组可以方便地处理数据和实现查找功能。原创 2023-08-21 23:18:24 · 527 阅读 · 0 评论 -
7-9 说反话-加强版
这道题目的主题是“说反话”,但它实际上涉及了许多基础的编程和数据处理技能。通过这题,我们可以学到以下几点:1. **字符串操作**:如何遍历、如何标记单词的开始和结束,以及如何根据标记输出子串。2. **逆序处理**:对数据进行反向处理是一个常见的编程问题,不仅仅局限于字符串。3. **特定字符的定位与跳过**:在这个场景中,是空格作为分隔符。但在其他上下文中,我们可能需要跳过逗号、制表符或其他字符。原创 2023-08-21 01:06:09 · 233 阅读 · 0 评论 -
7-8 二分查找法
从这道题目,我们可以学习和深化以下几个方面的认识和技能:1. **二分查找法的基本原理和应用**:二分查找法是一个经典的搜索算法,用于快速查找有序数列中的特定元素。2. **算法效率**:理解为什么二分查找是高效的(与线性查找相比),特别是对于大数据集。这种算法的时间复杂性是O(log n),与每次都减少查找范围一半的策略直接相关。3. **条件循环**:通过while循环和条件判断,我们可以控制程序的执行流程,直到满足某个条件为止。这在很多算法和问题解决方案中都是一个常见的模式。原创 2023-08-21 00:44:55 · 346 阅读 · 0 评论 -
7-7 找最小的字符串
这道题目为我们提供了以下学习点和思考方向:1. **字符串操作**:字符串在编程中是非常常见的数据类型,了解如何在C和C++中操作字符串(如读取、比较和赋值)是基础且关键的。2. **比较方法**:- 在C语言中,我们不能直接使用比较运算符(`==`, `` 等)来比较两个字符串的内容,而应使用专门的函数如`strcmp`。- 在C++中,`string`类重载了这些操作符,使得字符串比较更加直观和简洁。3. **循环结构的使用**:这题目要求我们遍历所有输入的字符串并找出最小的。原创 2023-08-21 00:06:13 · 1513 阅读 · 0 评论 -
7-6 统计字符出现次数
这道题目虽然简单,但对于初学者来说,它提供了一些重要的学习点:1. **基本输入/输出**:学习如何从标准输入读取数据(如字符串和字符)并输出到标准输出是编程的基本技能。在C中我们使用`scanf`和`printf`,而在C++中我们使用`cin`和`cout`。2. **字符串操作**:这题让我们操作字符串,进行遍历并访问它的每一个字符。在C中,字符串被视为字符数组,而在C++中,我们有专门的`string`类来进行操作。3. **循环结构**:通过遍历字符串,我们加深了对for循环的理解和应用。原创 2023-08-20 23:50:25 · 608 阅读 · 0 评论 -
7-5 螺旋方阵
7-5 螺旋方阵分数 20全屏浏览题目切换布局作者 C课程组单位 浙江大学所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。原创 2023-08-20 23:37:32 · 2331 阅读 · 0 评论 -
7-4 交换最小值和最大值
从这道题目中,我们可以学到以下几点:1. **问题分析**:在解决问题之前,需要仔细阅读和理解题目要求,以确保你考虑到了所有可能的情况。2. **边界条件的重要性**:在计算机科学中,边界条件常常是出现错误的地方。这道题目强调了如果最小值或最大值位于序列的开始或结束位置,交换的顺序会产生影响。这就是一个边界条件的例子。3. **数组操作**:这道题目强调了对数组元素的访问和修改。你需要熟悉如何在数组中找到最大值和最小值,以及如何交换数组中的两个元素。原创 2023-08-20 04:35:28 · 2502 阅读 · 0 评论 -
7-3 数字加密
从这道题目中,我们能够学习到以下几点:1. **数字的位操作**:题目要求对四位数的各个数字进行操作。这需要我们理解如何将整数分解成其组成的各个位数(例如,使用取模和整除操作),以及如何将这些位数组合回去。2. **模运算的应用**:题目中的`(a[i]+9)%10`操作就是一个典型的模运算应用,可以保证加密后的数字仍然在0-9的范围内。3. **数组的使用**:在处理多个类似的元素时,如本题中的四位数字,使用数组可以更方便地管理和操作它们。原创 2023-08-20 04:14:32 · 309 阅读 · 0 评论 -
7-2 求矩阵各行元素之和
基本的二维数组操作:题目要求对一个二维矩阵进行操作,所以我们需要了解如何在C或C++中定义和操作二维数组。嵌套循环的应用:为了遍历二维数组中的每一个元素,我们使用了双重循环,这有助于加强对嵌套循环结构的理解。基本的输入输出:这道题目提供了对于如何从标准输入读取二维矩阵数据,以及如何将结果输出到标准输出的实践。累加操作:通过这道题目,我们可以练习使用累加器来计算总和。这是编程中常见的操作,特别是在数据处理和统计中。问题分解:这道题目教我们如何将一个问题分解成更小的、可管理的部分。原创 2023-08-20 03:44:15 · 1475 阅读 · 6 评论 -
7-1 选择法排序
从这个问题中,我们能学习到以下几点:1. **排序算法基础**:选择排序是计算机科学中最基础的排序算法之一。了解和掌握其原理对于深入理解更复杂的排序算法有很大帮助。2. **算法思维**:选择排序的核心思想是重复地从未排序的部分选择最大(或最小)的元素。这种重复选择的思想在许多其他算法中也有应用。3. **编程实践**:通过实现选择排序,可以加强对循环、条件判断、数组操作等基本编程概念的理解和应用。4. **性能认识**:虽然选择排序在小规模数据上表现得还不错,但它并不适用于大规模数据。原创 2023-08-20 03:25:09 · 525 阅读 · 0 评论 -
7-10 最佳情侣身高差
分数 10全屏浏览题目切换布局作者 陈越单位 浙江大学专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。原创 2023-08-20 01:51:33 · 267 阅读 · 0 评论 -
7-9 奇偶分家
这道题没什么好总结的。原创 2023-08-20 01:30:28 · 923 阅读 · 0 评论 -
7-8 韩信点兵
什么是同余定理:同余定理,或称为模运算定理,是数论中一个基本的概念。它提供了一种关于整数与模之间的关系的表达方式。以下是它的基本定义和性质:**定义**:如果两个整数\( a \)和\( b \)除以正整数\( m \)所得的余数相同,那么我们称\( a \)和\( b \)关于模\( m \)同余,记作:例如:由于7除以3的余数是1,和10除以3的余数也是1,所以我们可以说\( 7 \equiv 10 \mod 3 \)。原创 2023-08-20 01:22:18 · 255 阅读 · 0 评论 -
7-7 验证“哥德巴赫猜想”
埃拉托斯特尼筛法(Sieve of Eratosthenes)是一种用于找出小于或等于某一指定正整数n的所有素数的简单、古老的算法。这种方法特别适用于需要大量素数并且存储它们的场景,例如某些密码学应用。该方法是基于以下的事实:一个素数的任何倍数都不是素数。### 算法过程:1. 创建一个从2到n的连续整数的列表。2. 初始时,让数字p等于2,它是最小的素数。3. 从列表中移除p的所有倍数(从2p开始,然后3p、4p,...)。因为p的所有倍数都不可能是素数。原创 2023-08-20 01:14:19 · 293 阅读 · 0 评论 -
7-6 换硬币
分数 20全屏浏览题目切换布局作者 C课程组单位 浙江大学将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?原创 2023-08-20 00:43:58 · 221 阅读 · 0 评论 -
7-5 特殊a串数列求和
这道题目提供了一些关键的学习点和教训:1. **数学模式的观察**:在很多编程题目中,识别并应用数学或算法模式是至关重要的。在这里,观察到如何构建数列的每一个项是解题的关键。2. **递归思维**:尽管我们没有使用递归函数,但数列的构建方式是递归的,即当前项是基于前一项构建的。培养这种递归思维有助于处理更复杂的递归问题。3. **简化问题**:通过递归的观察,我们能够将一个看似复杂的问题简化为一个简单的重复过程,这是编程中的一个重要策略。原创 2023-08-20 01:14:49 · 471 阅读 · 0 评论 -
循环结构 7-4 找出最小值
这道题目在首看之下可能相对简单,但通过其实现和分析,我们可以学到许多编程和算法设计方面的知识和技巧:1. **基本算法设计**:这道题目涉及到的基础算法是线性搜索。我们在一个数据集中进行遍历,寻找某个特定的值(在这里是最小值)。学习如何有效地进行线性搜索是算法设计的基石。2. **动态内存分配**:- 在C++中,我们学习了如何使用`vector`作为动态数组来存储数据。- 在C语言中,我们了解了如何使用`malloc`和`free`进行动态内存分配与释放。原创 2023-08-19 23:37:41 · 1494 阅读 · 1 评论 -
7-3 求给定精度的简单交错序列部分和
从这道题目,我们可以学到以下几点:1. **观察数学规律**: 解决这类题目的关键是首先找到数学序列的规律。在本题中,我们观察到序列的分子始终为1,分母是递增的,每次增加3,且正负号是交替的。2. **循环控制**: 了解如何使用循环来累加序列,并掌握如何根据某个条件(在这里是项的绝对值小于或等于`eps`)来终止循环。3. **处理浮点数精度**: 在处理涉及浮点数的题目时,特别是当需要特定精度的输出时,我们应该知道如何设置输出的精度(例如,在C++中使用`setprecision`)。原创 2023-08-17 03:39:39 · 915 阅读 · 0 评论 -
7-11 到底是不是太胖了
分数 10全屏浏览题目切换布局作者 陈越单位 浙江大学据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。原创 2023-08-17 02:42:17 · 245 阅读 · 0 评论 -
7-10 奇偶分家
分数 10全屏浏览题目切换布局作者 陈越单位 浙江大学给定N个正整数,请统计奇数和偶数各有多少个?原创 2023-08-17 02:29:50 · 271 阅读 · 0 评论 -
7-9 大笨钟
从这道题目“大笨钟”中,我们可以学习到以下几点:1. **字符串处理**:通过对输入字符串的处理,我们可以提取和转换时间数据。2. **条件逻辑**:根据题目的描述,我们需要判断当前时间是否在特定的时间范围内,以决定是敲钟还是输出一个特定的消息。3. **循环**:题目要求输出“Dang”多次,这需要用到循环。4. **格式化输出**:题目中的某些输出格式要求可以使用标准库中的格式化工具,如`setw`和`setfill`,来进行处理。原创 2023-08-17 01:56:56 · 196 阅读 · 0 评论 -
7-8 龟兔赛跑
这是一个使用条件(三元)运算符的语句。条件运算符 `?:` 是C和C++中的一个三元运算符,它允许您基于一个条件来选择两个值中的一个。condition?10 : T;1. `T >= 10`:这是一个条件判断,检查变量 `T` 是否大于或等于10。2. `10`:如果上述条件为真(即 `T` 的值大于或等于10),那么表达式的结果就是这个值。3. `T`:如果上述条件为假(即 `T` 的值小于10),那么表达式的结果就是 `T` 的当前值。原创 2023-08-17 01:13:07 · 124 阅读 · 0 评论 -
7-7 三天打鱼两天晒网
分数 15全屏浏览题目切换布局作者 C课程组单位 浙江大学中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?输入在一行中给出一个不超过1000的正整数N。在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。输出样例1:输入样例2:输出样例2:鸣谢内蒙古师范大学张志平老师补充数据代码长度限制16 KB时间限制400 ms内存原创 2023-08-17 00:24:10 · 1623 阅读 · 0 评论 -
7-6 计算天数
从这道题目中,我们可以学到以下几点:1. **日期处理的基础知识**:这道题考查了对公历的基本知识,特别是如何判断一个年份是否是闰年。对于初学者来说,了解这些基本规则是很重要的。2. **数组的使用**:使用数组来存储每个月的天数是一个简单且有效的方法,这样可以方便地计算给定日期前面有多少天。3. **条件判断的使用**:判断是否为闰年并根据结果调整2月的天数,展示了条件判断在实际问题中的应用。原创 2023-08-17 00:05:59 · 180 阅读 · 0 评论 -
7-5 出租车计价
分数 15全屏浏览题目切换布局作者 沈睿单位 浙江大学本题要求根据某城市普通出租车收费标准编写程序进行车费计算。原创 2023-08-16 23:54:31 · 1770 阅读 · 5 评论 -
7-4 比较大小
从这道题目中,我们可以学到以下几点:1. **基本的比较操作**:题目涉及到整数的比较,这帮助我们熟悉如何使用比较操作符(如``、`=`)来判断数字的相对大小。2. **条件语句的应用**:通过这个问题,我们可以看到条件语句(如`if`、`else if`、`else`)在实际编程中的应用,以及如何嵌套使用它们来处理更复杂的逻辑。3. **简单排序逻辑的理解**:尽管题目中只有三个数字,但其实这是一个简化版本的插入排序。这为我们提供了一个很好的机会来了解排序算法的基本概念。原创 2023-08-16 02:54:05 · 602 阅读 · 0 评论 -
7-3 查询水果价格
这道题目提供了多个学习和思考点:1. **选择结构的应用**:通过使用`switch`语句,我们可以明白其如何根据不同的条件选择不同的执行路径。它是一个常用的结构,特别是当有多个条件需要判断时。2. **循环控制**:这道题目要求在查询超过5次后自动退出,这介绍了循环的使用,并在循环内部通过条件判断进行中断。3. **输入/输出格式的控制**:使用`fixed`和`setprecision`来控制输出格式,让我们知道如何以特定的格式显示数字。原创 2023-08-16 02:40:20 · 422 阅读 · 0 评论 -
7-2 成绩转换
从这种方法——将分数除以10,然后使用结果来决定输出哪一个五分制的成绩——我们可以学到以下几点:1. **简化问题**:通过对问题的简化,我们可以使解决方案更加直观和容易实现。在这种情况下,我们使用除法来将一个连续的范围(0-100)转化为一个较小的离散集(0-10),从而简化了 `switch` 语句的实现。2. **离散化连续数据**:在某些情况下,我们可以将连续的数据离散化,使其更容易处理。在此示例中,我们将连续的分数转化为离散的等级。原创 2023-08-16 01:42:05 · 1078 阅读 · 0 评论 -
8-1 统计字符
这道题目我暴露了几个问题1.是ASCII码的范围和使用方式完全忘记2.如何使用getchar,这道题目我刚开始是想要用字符数组的。原创 2023-08-15 23:40:27 · 320 阅读 · 0 评论 -
7-15 然后是几点
有时候人们用四位数字表示一个时间,比如1106表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为530;0 点 30 分表示为030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。原创 2023-08-15 00:44:55 · 365 阅读 · 0 评论 -
7-10 后天
如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。原创 2023-08-14 03:44:08 · 57 阅读 · 0 评论 -
7-8 计算存款利息
本题目要求计算存款利息,计算公式为interest=money×(1+rate)year−money,其中interest为存款到期时的利息(税前),money是存款金额,year是存期,rate是年利率。原创 2023-08-14 03:29:26 · 186 阅读 · 0 评论 -
7-7 整数152的各位数字
本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值。原创 2023-08-14 03:05:56 · 814 阅读 · 0 评论