- 博客(1023)
- 资源 (13)
- 收藏
- 关注
原创 GESP等级考试C++5级30-二分查找2
本文介绍在含重复元素的升序数组中使用lower_bound方式实现二分查找,以定位元素首次出现的位置。通过不断缩小范围,找到第一个大于等于目标值的位置,并额外验证该位置是否等于目标值,确保结果正确。完整代码实现包括自定义函数与主程序逻辑,适用于多组查询,有效处理重复元素场景。
2026-11-05 09:53:07
8
原创 GESP等级考试C++5级29-二分查找1
二分查找是一种高效的有序数组搜索算法,基于分治思想,每次将搜索范围缩小一半,时间复杂度为O(log n)。其核心是通过比较中间元素与目标值的大小,动态调整搜索区间。代码实现中,定义find_x()函数,使用双指针start和end控制范围,通过mid = start + (end - start) / 2避免整数溢出。对于多次查询,可高效返回元素下标或-1(未找到)。适用于严格升序且无重复的整数数组。
2026-11-05 09:49:41
104
原创 GESP等级考试C++5级28-唯一分解定理2
最小因式筛法通过预处理构建2~N范围内每个数的最小质因数表(spf),实现高效质因数分解。对于多个查询,可快速定位每个数的质因数及其个数。例如,360分解为2³×3²×5¹。算法时间复杂度为O(N log log N),适用于多组数据处理,显著优于单次试除法。
2026-11-02 10:44:53
8
原创 GESP等级考试C++5级27-唯一分解定理1
唯一分解定理指出,任一大于1的自然数可唯一分解为质数乘积。通过试除法实现该分解:从2开始依次试除,统计每个质因数的个数,直至n缩小至1。算法复杂度为O(√n),代码中利用循环与条件判断输出结果,如360分解为2³×3²×5¹。最后若n>1,说明其本身为质数,也需输出。
2026-11-02 10:42:17
122
原创 玩游戏学Python14-输入input
本文介绍了Python中input()函数的用法:默认接收用户输入并返回字符串类型;通过int()可转换为整型,float()可转换为浮点型;支持带提示信息的输入。结合游戏实例,演示如何让用户输入背景色和汽车速度,实现交互式控制,增强程序灵活性。
2026-10-28 10:01:31
207
原创 玩游戏学Python13-类型转换及字符串占位符
本文通过Python的pgzero库,实现汽车在屏幕中环绕行驶并实时显示其位置。利用str()函数将整型坐标转换为字符串,结合screen.draw.text()函数显示汽车的(x, y)坐标。进一步采用f-string格式化方法,简洁高效地动态呈现汽车位置,提升游戏可视化效果。代码完整,逻辑清晰,适用于初学者学习条件语句与字符串格式化。
2026-10-28 09:57:46
413
原创 GESP等级考试C++5级26-数组模拟高精度运算6
本文介绍GESP C++5级要求的高精度除法运算,重点实现被除数为高精度、除数为低精度的情况。通过自定义div()函数,将高精度数逆序存储后逐位相除,利用余数进位计算商,并用reverse()逆序商数组,最后去除前导零。主函数中将字符串逆序转为向量,转换除数,调用div()函数求商与余数,最终输出结果。代码完整、逻辑清晰,适用于高精度除法入门学习。
2026-10-22 10:06:55
22
原创 GESP等级考试C++5级25-数组模拟高精度运算5
本文实现高精度乘法,通过自定义mul()函数处理大数相乘。将字符串逆序存入vector<int>,逐位相乘后累加至结果数组,统一进位并去除前导零。主函数读取两个大数字符串,调用mul()计算乘积,逆序输出结果。代码简洁高效,适用于任意长度整数乘法。
2026-10-22 10:04:24
131
原创 GESP等级考试C++5级24-数组模拟高精度运算4
本文通过自定义函数实现高精度减法,将输入的被减数和减数逆向存储于vector中,去除前导0后,利用cmp函数比较大小,决定是否交换a、b。若a < b,调用swap交换并标记结果为负;随后调用sub函数进行逐位减法运算,处理借位,并去除结果前导0。最后输出差值,支持正负数结果,完整实现高精度减法。
2026-10-20 15:19:36
18
原创 GESP等级考试C++5级23-数组模拟高精度运算3
本文介绍了高精度减法运算的实现方法,重点解决负数结果带来的困难。通过自定义比较函数cmp()判断被减数与减数大小,确保被减数始终不小于减数,避免负数结果。随后,利用sub()函数进行逐位相减,处理借位并去除结果中的前导0,最终实现正确、高效的高精度减法运算。
2026-10-20 15:17:41
110
原创 玩游戏学Python12-布尔型与条件语句
本文介绍了Python中的布尔型数据、比较运算符及条件语句,并通过pgzero实现汽车环绕屏幕行驶。利用if语句判断汽车是否超出屏幕右侧,若超出则将其位置重置至左侧,实现无缝环绕效果。代码结合了布尔逻辑与条件控制,展示了程序逻辑在游戏开发中的实际应用。
2026-10-14 10:23:35
422
原创 玩游戏学Python11-算术运算符应用3
赋值运算符“=”用于将值赋予变量,如将2.5赋给car_speed。复合赋值运算符(如+=、-=、*=、/=)结合算术与赋值操作,先计算再赋值,提升代码简洁性。例如a+=1等价于a=a+1。图10和图11展示了其应用,可简化car.right += car_speed的写法。完整代码实现小车移动,使用pgzero库,通过update()函数持续更新位置,使小车在屏幕上运行。
2026-10-14 10:18:23
261
原创 玩游戏学Python10-算术运算符应用2
在《玩游戏学Python》中,通过pgzero库的update()函数每秒调用60次,可实现小车动画。只需在update()中修改汽车Actor的right属性(如car.right += car_speed),即可让小车移动。使用浮点型变量定义速度(如car_speed = 1.5),可精确控制移动速率,使小车平滑加速。相比整数速度,浮点型提升移动流畅度与灵活性。
2026-10-13 10:44:12
285
原创 玩游戏学Python9-算术运算符应用1
在pgzero中,使用screen.draw.text()函数可在draw()函数中显示文本信息。通过设置位置、字体大小(fontsize)和颜色(color)参数,可灵活控制显示效果。将字体属性设为变量,可方便地动态调整显示内容,提升代码可维护性。
2026-10-13 10:41:05
185
原创 玩游戏学Python8-算术运算符2
本文介绍在pgzero中使用算术运算符优化游戏代码。通过HEIGHT/2或HEIGHT//2动态设置汽车纵坐标,实现窗口自适应;利用+和*操作符组合字符串,灵活设置标题(如TITLE='我的第一个pgzero游戏'*2)和图标(如ICON='car'+'.png'),提升代码可维护性与灵活性。完整代码展示了这些运算符的实际应用。
2026-10-12 18:58:30
304
原创 玩游戏学Python7-算术运算符1
Python算术运算符包括+、-、*、/、//、%。整型可使用全部运算符,如+、-、用于数值计算,/返回浮点数,//取整除商,%求余数。字符串仅支持+(连接)和(重复),如"abc"+"def"结果为"abcdef","a"*3得"aaa"。其他算术运算符不可用于字符串与整型混合运算。
2026-10-12 18:54:53
85
原创 玩游戏学Python6-演员Actor
在PyZer0中,Actor用于表示游戏角色,封装了图像显示、位置控制等功能。通过将car.png放入images文件夹,并使用Actor('car', (150, 300))创建汽车对象,可在指定坐标显示车辆。pgzero坐标系原点在左上角,x轴向右,y轴向下。在draw()函数中调用car.draw()即可绘制汽车,完整代码实现了一个简单的游戏界面,汽车位于(150, 300)处。
2026-10-10 10:25:34
460
原创 玩游戏学Python5-函数
本文介绍了函数的基本概念与定义格式,强调函数可重复执行任务以提高代码效率。重点讲解了pgzero库中draw()函数用于绘制游戏窗口并填充背景色,以及update()函数用于循环更新游戏状态。通过实例展示了如何定义和调用函数,并说明draw()和update()由pgzero自动调用,分别负责绘图与状态更新,每秒约60次调用,实现游戏动态效果。
2026-10-10 10:22:57
198
原创 玩游戏学Python4-字符串
本文介绍了Python中字符串的概念及其在pgzero游戏编程中的应用。字符串是用引号括起的字符序列,可通过变量定义。通过定义大写变量TITLE和ICON,可修改游戏窗口标题和图标。标题栏文字由TITLE变量指定,图标需为32×32或64×64的PNG、JPG、GIF格式图片,并与代码同目录。注意变量名必须大写,图片大小需符合要求,否则无法正常显示。
2026-10-09 11:58:28
478
原创 玩游戏学Python3-整型
Python基本数据类型包括整型、浮点型、布尔型和字符串型。整型(int)用于表示整数,可通过变量定义并赋值,如a=1。变量是标识符,绑定对象后可访问其值。在pyzero中,可用整型变量WIDTH和HEIGHT控制窗口大小,如WIDTH=640表示窗口宽640像素。变量可多次赋值,最终值以最后一次为准;且变量名区分大小写,WIDTH与width为不同变量。像素是屏幕最小显示单位,游戏画面由像素排列构成。
2026-10-09 11:56:11
300
原创 玩游戏学Python2-IDLE与pgzero入门
IDLE是Python自带的轻量级IDE,支持交互模式与文件模式。交互模式可即时执行代码,但关闭后内容丢失;文件模式需通过“File→New File”创建,代码可保存并运行(按F5),便于后续调用。pgzero是简化2D游戏开发的框架,核心为pgzrun库,通过import pgzrun和pgzrun.go()启动游戏,实现“零样板代码”的快速开发。
2026-10-08 15:33:40
317
原创 玩游戏学Python1-Python和pgzero库的安装
本文介绍了Python 3.10.6的安装与启动流程,包括勾选“Add Python to PATH”并使用Install Now完成安装,随后通过IDLE打开Python环境。接着详细说明了pgzero库的安装方法:通过cmd命令行使用pip install pgzero -i https://pypi.tuna.tsinghua.edu.cn/simple进行安装,并可通过pip list验证安装结果,适用于初学者快速开展2D游戏开发。
2026-10-08 15:29:47
162
原创 GESP等级考试C++5级22-数组模拟高精度运算2
本文通过数组模拟实现大整数的高精度加法运算。将大整数逆序存入vector<int>,逐位相加并处理进位,使用add()函数完成两数相加。最后去除结果前导零,并逆序输出。代码简洁高效,可处理任意大小整数的加法运算。
2026-10-07 10:23:04
27
原创 GESP等级考试C++5级21-数组模拟高精度运算1
本文介绍C++中高精度大整数运算的实现方法。由于内置类型无法表示超大整数,采用vector逆序存储(低位在前),模拟竖式计算,便于进位处理与for循环操作。通过字符串输入并逆序转存,去除前导零后逆序输出,实现大整数的加减乘除基础运算。
2026-10-07 10:20:53
147
原创 GESP等级考试C++5级20-素数判断法3
线性筛通过维护素数表,确保每个合数仅被其最小质因子标记一次,避免冗余操作。核心在于:若i为素数则加入表;遍历素数表,用i乘各素数标记合数;当i能被当前素数整除时立即break,保证唯一标记。代码中使用long long防溢出,实现严格O(n)复杂度。
2026-10-04 10:54:37
18
原创 GESP等级考试C++5级19-素数判断法2
本文介绍素数筛算法,针对朴素判断法在大范围求素数时效率低的问题,提出埃氏筛(埃拉托斯特尼筛法)。其核心思想是从小到大遍历,每遇素数即标记其所有倍数为合数,剩余未被标记者即为素数。该算法时间复杂度为O(n log log n),接近线性。代码实现中使用布尔数组标记合数,通过循环筛选并收集素数,高效获取1~n内所有素数。
2026-10-04 10:51:49
120
原创 GESP等级考试C++5级18-素数判断法1
素数判断常用朴素算法与优化版本。朴素算法遍历小于n的所有数,判断是否整除,时间复杂度为O(n);优化后只需试到√n,复杂度降为O(√n),效率显著提升。素数定义为大于1且仅能被1和自身整除的自然数,反之为合数。
2026-09-28 10:20:10
21
原创 GESP等级考试C++5级17-辗转相除法
辗转相除法(欧几里得算法)用于求两正整数最大公约数(gcd),基于gcd(a,b) = gcd(b, a mod b),反复迭代直至余数为0,此时被除数即为gcd。可推广至多个数的gcd求解,且gcd与最小公倍数(lcm)满足a×b = gcd×lcm,求lcm时应先除后乘以防溢出。注意处理负数时需取绝对值,避免死循环。
2026-09-28 10:18:16
143
原创 GESP等级考试C++5级15-快慢指针1
快慢指针(龟兔赛跑算法)是单链表中经典技巧,用于高效查找中心结点。慢指针每次前移1步,快指针每次前移2步,当快指针到达末尾时,慢指针恰在链表中间。若结点数为奇数,返回正中心;偶数时返回靠右的中心结点。代码实现简洁,时间复杂度O(n),空间复杂度O(1),适用于链表中位查找等场景。
2026-09-25 16:44:52
313
原创 GESP等级考试C++5级16-快慢指针2
本文介绍使用快慢指针法高效查找链表倒数第i个结点的原理与实现。核心思想:快指针先走i步,随后快慢指针同步前进,当快指针到达末尾时,慢指针即指向倒数第i个结点。代码中通过边界判断确保链表长度足够,避免越界。完整实现包含链表创建与查询,运行结果正确输出目标节点值,时间复杂度为O(n),空间复杂度为O(1)。
2026-09-25 16:44:11
42
原创 GESP等级考试C++5级14-循环链表2
双向循环链表在双向链表基础上实现头尾相连:尾结点的next指向头结点,头结点的pre指向尾结点,形成循环结构。创建时需正确初始化头结点的next和pre为自身,并在插入新结点时更新尾结点与头结点的指针。遍历支持正向(从head→next)和反向(从head→pre)两种方式,反向遍历更简便,可直接通过head的pre获取尾结点。代码实现简洁高效,适用于需要双向循环访问的场景。
2026-09-24 10:30:38
13
原创 GESP等级考试C++5级13-循环链表1
循环链表是将单向链表尾结点与头结点相连形成的环形结构,实现从任意结点出发均可遍历所有结点。其核心在于尾结点的next指向头结点,遍历时以是否回到头结点作为终止条件。代码实现中,空链表时头结点next指向自身,插入新结点后尾结点的next指向头结点。遍历通过判断当前结点是否为头结点来结束,适用于约瑟夫环、轮询调度等环形场景,使代码更简洁直观。
2026-09-24 10:27:57
317
原创 GESP等级考试C++5级12-双向链表的插入及删除
本文介绍了双向链表中删除指定位置结点的原理与实现。通过修改前后结点的指针域,将目标结点从链表中移除,并释放其内存。代码实现包括deleteNode()函数,用于定位并删除第i个结点,确保前驱与后继指针正确更新。运行结果显示成功删除第3个结点,正向遍历输出剩余元素。完整代码涵盖创建、删除与遍历操作,体现了双向链表的灵活管理能力。
2026-09-23 09:29:42
26
原创 GESP等级考试C++5级11-双向链表的插入及删除
本文介绍了在双向链表指定位置插入新结点的原理与实现。通过查找前驱结点p,创建新结点s并更新各结点指针(s→next、s→pre、p→next、p→next→pre),完成插入。代码实现了insert函数,并在main函数中于第3位插入数据100,经正向遍历输出结果验证正确性。完整代码包含双向链表的创建、插入及遍历功能,体现了双向链表插入操作的双向指针维护特性。
2026-09-23 09:27:18
152
原创 GESP等级考试C++5级10-双向链表的访问
双向链表通过next和pre指针实现正向与反向访问。正向遍历从头结点出发,利用next域依次访问;反向遍历则先找到尾结点,再通过pre域逆序输出。代码中分别定义forwardShow和backwardShow函数实现两种遍历方式,完整展示了双向链表的创建与双向遍历过程。
2026-09-17 09:19:58
18
原创 GESP等级考试C++5级9-双向链表的创建
双向链表结点包含数据域data、指向后继的next指针和指向前驱的pre指针。创建过程与单向链表类似,通过输入数据直至-1结束。关键区别在于需设置pre指针:头结点pre置为NULL,新结点p的pre指向当前尾结点r,r的next指向p,实现双向连接。完整代码展示了动态创建与链接过程。
2026-09-17 09:16:22
133
原创 GESP等级考试C++5级8-获取链表的结点数量
本文实现链表结点数量的获取,通过自定义len()函数遍历链表,统计结点总数。代码中定义了链表结构体Node,利用头指针head和尾指针r动态创建链表,输入数据直至遇到-1停止。len()函数从头结点开始逐个访问下一结点,计数直到末尾,返回结点数量。运行结果显示链表长度,完整代码涵盖链表创建与长度计算,逻辑清晰,便于理解与应用。
2026-09-15 09:51:03
10
原创 GESP等级考试C++5级7-删除结点
本文介绍了链表中删除指定位置结点的原理与实现。通过找到第i-1个结点,将其指针指向第i+1个结点,实现删除第i个结点。代码中定义了delete_node()函数,利用指针操作完成结点删除,并在main()函数中调用该函数删除第3个结点,最后通过show()函数输出删除后的链表。运行结果验证了删除操作的正确性。
2026-09-15 09:48:40
113
原创 GESP等级考试C++5级6-查找与修改结点2
根据内容:主要讲用set函数查找并修改链表指定数据结点,给出代码和效果。摘要应简洁。</think>本文介绍了通过set()函数在链表中查找指定数据域x的结点并修改为y的方法,给出了代码实现及运行效果,并附完整示例程序。
2026-09-09 08:54:44
16
原创 GESP等级考试C++5级5-查找与修改结点1
文本主要讲解查找节点包括两种,重点介绍查找指定位置节点的set()函数实现,包括代码、运行效果和完整代码。需要简洁概括。注意字数限制。</think>本文介绍了查找节点的两种方式,重点讲解查找指定位置节点的实现:通过set()函数遍历链表,找到第i个节点并修改其数据域,与插入结点方法类似但循环条件不同。文章包含代码示例、运行效果及完整代码,展示了链表中指定节点数据修改的完整流程。
2026-09-09 08:52:33
137
基于IOAPIC重定位的 键盘监听技术及防御
2017-03-27
Windows文件系统过滤驱动开发教程(第二版)
2017-04-23
基于VS2015套接字完成端口模型源代码
2018-07-04
ddkwizard_setup_v1.2.0a及ddkward.cmd
2016-10-23
基于对话框程序的注册码快捷键粘贴功能的实现
2017-04-23
VS2008编译驱动程序的配置方法
2016-10-23
Windows7下VS2008维护模式破解工具.rar
2019-05-31
filespy源代码
2016-09-25
DirectDraw中文手册
2017-01-31
Windows Graphics Programming Win32 Gdi And Directdraw.chm
2017-01-31
黑客调试技术解密pdf
2016-09-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅