- 博客(128)
- 收藏
- 关注
原创 c++经典练习题-字符串
本文介绍了多个与ASCII码和字符处理相关的编程题目及解答,主要包括: ASCII码转换:字符与ASCII码互转 字符类型判断:识别大小写字母或数字 大小写转换:实现字母大小写互转 字母顺序处理:求字母的后继字母 字母图形打印:输出各种字母图案(矩形、三角形等) 数组处理:查找替换符合条件的数组元素 特殊字母筛选:找出ASCII码是素数或回文数的大写字母 每个问题都提供了对应的C++实现代码,涉及字符编码、条件判断、循环控制等编程基础。这些题目涵盖了字符处理的基本操作,适合编程初学者练习。
2025-12-28 17:31:45
691
原创 二维差分数组问题
每个位置的值由当前元素减去上方和左方的元素,再加回左上角(避免重复减法)。使用if判断边界,避免越界访问。仅修改差分矩阵的四个角,通过if确保不越界。例如:修改右上角时,需检查y2+1<n通过累加差分矩阵的值,逐步重建原矩阵。使用if判断是否需要累加上方、左方或左上角元素。
2025-12-28 16:18:50
460
原创 c++经典练习题-穷举
本文整理了15道经典数学问题的编程解法,涵盖鸡兔同笼、百钱百鸡、植树问题等多种类型。这些题目主要涉及: 二元/三元一次方程的整数解问题 物品采购的组合问题 人员分配问题 解题方法均采用穷举法,通过多层循环遍历所有可能组合,筛选满足条件的解。每道题目都给出了完整C++代码实现,包括输入输出处理。这些题目考察了循环结构、条件判断和算法设计等编程基础能力,是训练逻辑思维和编程实践的良好素材。
2025-12-27 19:05:44
812
原创 差分数组问题
原数组A: 存储实际数据。差分数组D: D[i] = A[i] - A[i-1](D[0] = A[0])作用: 通过记录相邻元素的差值,快速实现区间增减操作原数组:A = [1,3,5.7,9]构造步骤:差分数组:D = [1.2.2.2.2]
2025-12-21 21:28:44
936
原创 c++经典练习题-分支练习(2)
游乐场引进了一个新的游乐设施,可以两人一组开动该设施,但设施设计上有一个缺陷,必须一个人的体重在 60 公斤以上(包含 60 公斤),另一个人体重在 60 公斤以下,才能启动该设施。请你编程从键盘读入两个游客的体重,判断一下设施能否启动,如果能启动输出green,不能启动输出red。比如输入:65.2 28.5,就可以启动设施,输出green。再比如输入:28.5 56.7,就不能启动设施,输出red。两个小数,代表两位游客的体重。如果能启动输出green,不能启动输出red。65.2 28.5。
2025-12-19 23:54:55
640
原创 c++经典练习题-多分支
小明同学的妈妈在期末考试之后决定根据小明的考试成绩奖励小明不同的暑假零花钱,如果考试成绩在 90 分以上(包括 90 分),零花钱是成绩的 3 倍,如果考试成绩在 80∼90 之间(包括 80 不包括 90 ),零花钱是成绩的 2 倍,如果成绩在 70∼80 之间(包括 70 不包括80 ),零花钱就是成绩的分数值,如果成绩在 70 以下,那么暑假只有 50 元的零花钱。学校运动会的跳水比赛已经结束,裁判统计出了选手们的成绩,并根据大家的成绩划分好了金牌、银牌和铜牌的获奖分数线。
2025-12-13 21:42:31
581
1
原创 c++经典练习题-双分支(2)
期末考试结束了,小华语文、数学、英语三门功课分别考了 x、y、z 分,小华的家长说,如果小华三门功课的平均分在90 分或者 90 分以上,那么就去北京旅游,如果在 90 分以下,那么就去南京玩。请从键盘读入小华三门功课的成绩,编程计算出小华暑期旅游的目的地,如果去北京,则输出“beijing”,如果去南京,则输出“nanjing(只要输出双引号中间的拼音,不要输出双引号)三个整数,代表小华三门功课的考试成绩。按题目要求输出小华旅游的目的地。
2025-12-12 23:45:19
912
原创 c++经典练习题-双分支(1)
本文摘要: 本文整理了10个基础编程题目及其解决方案,涵盖条件判断、数值计算等常见编程场景。主要内容包括: 冷饮价格计算(数量折扣) 奇偶数判断 晨练温度判断 大巴车需求计算 行李托运费用计算 恐龙园门票价格 两数比较大小 超市折扣计算 两位数比较十位和个位 年龄数字反转比较 每个问题都给出了输入输出样例和对应的C++代码实现,涉及if条件判断、数值运算、格式化输出等基础编程技能。这些题目适合编程初学者练习基础逻辑和条件判断能力。
2025-12-11 23:35:58
311
原创 前缀和问题
前缀和是一种高效计算数组区间和的预处理技术。它通过构建辅助数组存储累计和,将区间求和的时间复杂度从O(n)优化到O(1)。一维前缀和通过S[r]-S[l-1]快速计算区间和,二维前缀和则通过动态规划思想构建矩阵前缀和。典型应用包括:快速计算区间和、最大子矩阵和、统计全1子矩阵等。该技术特别适合多次查询的场景,通过空间换时间显著提升计算效率。实现时需注意边界条件(如S[0]=0)和递推公式,代码实现包括预处理构建前缀和数组和查询时的快速计算。
2025-12-07 17:52:36
1015
原创 双向指针算法(练习)
摘要:本文包含四个数组处理算法题解:1)合并有序数组,提供两种解法(新建数组和原地合并);2)完美数列,通过排序和双指针求最大满足条件的子序列长度;3)三数之和,使用三重循环统计满足条件的组合数;4)最接近的三数之和,通过枚举所有组合并排序找出最接近目标值的和。所有解法均采用C++实现,涉及排序、双指针等技巧,适用于有序数组处理问题。
2025-11-30 23:00:21
238
原创 对向指针算法
对向指针算法(双指针算法或碰撞指针)它在处理数组、字符串等序列结构时非常高效,特别是用于查找满足特定条件的两个元素、判断回文性或滑动窗口等问题。对向指针算法通常涉及两个指针,一个从序列的起始位置开始(左指针),另一个从末尾开始(右指针),然后根据某种条件相向移动,直到它们相遇或满足特定条件。这种方法通常能将O(n²)的时间复杂度优化到O(n)
2025-11-23 15:01:03
713
原创 双指针问题(2)
给你一个数组,全部有0和1构成,再给你一个R表示最多将数组中R个0反转为1,求最长的1构成的连续数组有多长。第一行:2整数,n代表有n个数据(1<n<1000000)r代表最大反转次数。a[10]={1001101011},r=100则输出10。a[10]={1001101011},r=1则输出4。a[10]={1001101011},r=2则输出7。第二行:n个1或者0。
2025-11-16 16:29:49
167
原创 双指针问题
S="ADOBECODEBANC”,T="ABC”,则输出:“BANC",包含A,B,C的最短子串。不满足条件就扩张:窗口扩张:right++→字符加入→更新window→检查是否满足need。满足条件窗口收缩:left++→字符移出→更新window→检查是否破坏条件。//当前窗口字符计数器。//T中字符需求计数器。//已满足条件的字符种类数。给定字符串S和字符串T,在S中找出包含T中所有字符的最短连续子串。
2025-11-09 17:00:50
144
原创 双指针问题(同向)
删除有序数组中所有重复的数据第一行整数n表示有n个数(n<10000000),第二行n个整数x(0<x<9999999999999)一行,去重后的数列,用空格隔开1.考虑使用数组统计法,但是数据范围(0<×<9999999999999)范围过大,统计数组开不了这么大2.考虑使用传统方法统计去重复,但是数据个数(n<10000000)双重循环会导致超时,好在他是有序的,可以使用双指针维护一个窗口,O(n)的时间处理这个问题删除数组(非有序)中所有等于x的数据。
2025-11-02 22:19:44
254
原创 CSP-J复赛2024
本文包含两个编程问题: 扑克牌问题:计算需要借多少张牌才能凑齐一副完整扑克牌(52张)。输入n张牌,使用集合(set)去重后输出52-去重后的牌数即可。 地图探险问题:模拟机器人在网格地图上的移动过程。机器人根据当前位置和方向移动,遇到障碍或边界则右转。统计机器人经过的不同位置数量。输入包含多组测试数据,每组数据包括地图、初始位置和方向、操作次数k。通过方向向量数组和循环实现移动逻辑,使用二维数组标记经过的位置。 两个问题都考察基本编程能力和数据结构使用,其中扑克牌问题重点在去重处理,地图探险问题重点在方向
2025-10-07 19:14:05
948
原创 动态规划--线性问题
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹的枚数和导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,每个数据之间至少有一个空格),计算这套系统最多能拦截多少导弹。第1行有1个整数n,代表导弹的数量。(n<=1000)
2025-09-21 21:59:28
811
原创 最长上升子序列的长度&最短连续字段和(动态规划)
摘要:本文介绍了最长上升子序列(LIS)和最短连续子段和两个经典算法问题。对于LIS问题,详细讲解了动态规划和贪心+二分两种解法,包括状态定义、转移方程和实现代码。对于最短连续子段和问题,说明了问题定义和应用场景,并给出了动态规划解法代码。两个问题在任务调度、股票分析等领域都有重要应用价值,是动态规划学习的典型案例。
2025-09-08 23:24:53
1070
原创 c++动态规划(2)
文章摘要:本文包含三个动态规划编程题目及解答。1. 奶酪问题:Jerry需在不连续偷吃相邻奶酪的情况下最大化美味度,使用动态规划求解。2. 酒鬼问题:Santo需在不超过连续三瓶的限制下最大化饮酒量,通过状态转移方程解决。3. 奶牛散步问题:计算奶牛在无限矩阵中N步不重复路径的可能方案数,采用动态规划方法。三个问题均展示了动态规划在不同场景下的典型应用。
2025-08-31 15:37:08
364
原创 c++动态规划
题目描述一个核电站有N个放核物质的坑,坑排列在一条直线上。如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。任务:对于给定的N和M,求不发生爆炸的放置危险物质的方案总数。输入格式只一行,两个正整数N,M(1<N<50,2≤M≤5)输出格式输出一个整数,表示方案数。样例输入样例4 3输出样例13。
2025-08-26 19:45:49
319
原创 差分数组c++
每天记录温度,支持区间温度调整和单日查询输入:第一行:一个整数n表示有n个温度第二行:n个数表示具体温度第三行:三个整数:S,e,c,表示从s天到e天,温度变化为c第四行:整数m,表示查询第m天的温度输入:初始温度[20,22,21,19]操作:第1-3天升温2度查询:第3天温度→输出23。
2025-06-21 19:50:51
206
原创 二维前缀和
给定m×n矩阵,找出元素和最大的子矩阵输入:[-1,2,-1][3,4,5][-2,-3,-4]输出:子矩阵[[3,4,5]],和为12解法思路:构建二维前缀和数组四重循环枚举所有可能的矩形区域:前两重循环枚举上下边界后两重循环使用类似最大子数组和的Kadane算法优化。
2025-06-15 12:42:19
235
原创 青少年软件编程(C语言)等级考试试卷(三级)
在上机实验课上,老师将所有学生排列为 n 排,每排坐 m 个学生。每个学生有左右两个邻座(除了这一排的左右两端)。每个人可以和自己的邻座互相帮助完成实验。除了每排左右两端的学生,中间的每个学生都可以同时与两个邻座分别协作。由于每个学生的个人能力不同,假设协作产生的小组能力值是两个协作学生的能力值之和,老师希望知道,自己给出的座位安排在多大程度上是“均衡”的 —— 所谓,是指所有可能组成的协作小组的能力值的最大值与最小值之差。给定一张座位安排表,请计算这个安排的分组均衡性。时间限制:1000。
2025-03-30 15:16:36
1209
原创 递归排列枚举(c++)
设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),要求:计算用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况。
2025-03-23 11:17:27
302
原创 c++三级(枚举问题)
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。
2025-03-15 19:44:37
587
原创 青少年软件编程(C语言)等级三级考试试题(2)
Minecraft 是一个几乎无所不能的沙盒游戏,玩家可以利用游戏内的各种资源进行创造,搭建自己的世界。在 Minecraft 中,基本的建筑元素是边长为 1 个单位的立方体,Tony 想用 N 个这种小立方体搭建一个长方体,并用他珍藏已久的贴纸对其进行装饰。如果一张贴纸可以贴满小立方体的一个面。那么,他需要用掉多少张贴纸呢?
2025-02-22 12:54:31
348
原创 青少年软件编程(C语言)等级三级考试试题
我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。若所有的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的门牌号及总共有多少家。数据保证有唯一解。
2025-02-22 12:49:57
843
3
原创 自定义函数--括号匹配问题
在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用“$”标注,不能匹配的右括号用“?”标注。
2025-01-04 14:12:10
203
原创 递归和循环
如 3、12、25、30、1003、12、25、30、100。从键盘读入一个整数n ,请输出n∼1 之间所有的整数,每行输出 1 个。小丽同学想在 1∼n 中找出这样的数,这个数的各个位的和不能被 2 整除也不能被 5 整除,比。如果一个函数可以求A(n),那么该函数就可以求A(n-1),就形成了递归调用;输出n∼1 之间所有的数,每行 1 个。请打印 n 行的数字直角三角形。请打印 n 行的数字直角三角形。1∼n 中满足条件的数的个数。n 行的数字直角三角形。n 行的数字直角三角形。
2024-12-21 14:03:56
510
原创 递归问题(c++)
原理 : 如果一个函数可以求A(n),那么该函数就可以求A(n-1),就形成了递归调用;试求该数列前N 项之和。因为木块堆得实在是太有规律了,你只要知道它的层数就可以计算所有木块的数量了。数列递归 : 如果一个数列的项与项之间存在关联性,那么可以使用递归实现。求S=1+2+4+7+11+16。只有一个整数 n ,表示这堆小木块的层数,已知 1≤n≤100。小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,有一对兔子,从出生后第3个月起每个月都生一对兔子,一对。只有一个整数,表示这堆小木块的总数量。
2024-12-14 14:37:33
660
1
原创 sqrt应用(进阶版)
输入复制 输入复制 输入复制。输出复制 输出复制 输出复制。输出复制 输出复制。一个非负整数n,加上100是得到的n+100,是一个完全平方数,在加100的基础上再加上168得到的。一行,一个整数n(0<n<3010) 输入复制。
2024-11-09 14:11:19
819
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅