- 博客(86)
- 收藏
- 关注
原创 C/C++蓝桥杯之猴子选大王问题
题目描述:有n只猴子按顺时针方向围成一圈选猴王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数,就这样,直到圈内只剩下一只猴子时,这只猴子就是猴王,编程输入n和m,输出猴王的编号。
2024-03-27 19:21:52
775
1
原创 C/C++蓝桥杯之报数游戏
n 个人站成一行玩报数游戏。游戏开始时,最左边的人报 1,他右边的人报2,编号为 3 的人报 3,以此类推。当编号为 n 的人(即最右边的人)报完 n 之后,轮到他左边的人(即编号为n-1 的人)报 n+1,然后编号为 n-2 的人报 n+2,以此类推。为了避免游戏太无聊,报数时有一个特例:如果应该报的数包含数字7 或者是 7 的倍数,则用拍手代替报数。当编号为 3 的人第 4 次拍手的时候,他实际上数到了 35。给定n,m 和 k,你的任务是计算当编号为 m 的人第 k 次拍手时,他实际上数到了几。
2024-03-17 21:42:42
905
原创 C/C++蓝桥杯之杨辉三角
分析:本题主要考察杨辉三角的相关知识,通过观察可以得出杨辉三角的基本性质,每个数均等于它上方两数之和。可以采用递推的方式从上到下计算出杨辉三角中每个元素的数值,边计算边比较。给定一个正整数N,请你输出数列中N第一次出现是在第几个位置?首先看一个杨辉三角的打印C程序(我以前写的)以上提供了两种方法,可供大家自由选择!问题描述:下面是著名的杨辉三角。
2024-03-16 17:12:10
685
原创 C/C++蓝桥杯之卡片问题
分析:求解本题应首先定义一个长度为10的数组,用来存放数字0~9的卡片数,下标代表数字,元素代表卡片已经使用的张数,初始值为0,每种类型的卡片如果使用超过2021张,则输出结果。程序从1开始递增遍历,当遍历到某个数时,将拼成该数所需的所有卡片类型数增加,随后判断数组中每种卡片是否被用完,如果用完则退出循环。例如,若小兰有30张卡片,其中0~9张各3张,则小兰可以拼出1~10,但是在拼11时,卡片1已经有一张了,因此不能拼出11。她想从1开始拼出正整数,每拼一个就保存起来,卡片就不能再用来拼其他数了。
2024-03-16 16:04:18
640
原创 C/C++蓝桥杯之整数拼接(较难)
问题描述:给定一个长度为n的数组,A1,A2,...,An你可以从中选出两个数Ai和Aj(i≠j),然后将Ai和Aj一前一后拼成一个新的整数。固本题要求满足以下等式的Ai和Aj组合:(Ai×10^len(Aj)+Aj)%K=0-->((Ai×10^len(Aj))%K+Aj%K)%K=0。当确定Aj时就可以确定P,通过P的值与K的值,就可以通过Q=(K-P)%K得到Q的值。规定:对于30%的评测用例,1≤n≤1000,1≤K≤20,1≤Ai≤10^4。Q:有两个未知量Ai的值和Aj的长度。
2024-03-16 00:01:43
600
原创 C/C++蓝桥杯之解码问题
在这串字母中,有很多字母是连续且重复的。小明想了一个将这串字母表达的很短的办法。将连续的几个相同的字母写成“字母+出现次数”的形式。例如:连续的5个a,即aaaaa可以简写成a5(也可以简写成a4a、aa3a等)。对于这串字母:HHHellllloo,小明可以简写成H3el5o2.为了方便表达,小明不会将超过9个连续相同的字母写成简写的形式。现在给出简写后的字符串,请帮助小明将其还原成原来的字符串。1.若当前元素是字符,且下一个元素是数字,则需要循环输出当前字符,循环输出的次数就是数字的值。
2024-03-13 19:45:06
598
原创 C/C++蓝桥杯之整除序列
补充:右移运算符(>>),把操作数的二进制码右移指定位数,左边空出来的位用原来的符号位填充。原来是负数的就填充1,原来是正数的就填充0,符号位不变。问题描述:有一个序列,序列的第一个数是n,后面的每个数均是前一个数整除2的结果,请输出这个序列中值为正数的所有项。分析:本题较为简单,每次对前一个数做除2运算即可,例外还可以按位运算实现!输出格式:输出一行,包含多个整数,相邻整数之间用一个空格隔开,表示答案。输入格式:输入一行,包含一个整数n。注:按位移的是数的补码。
2024-03-09 22:50:25
546
原创 C/C++蓝桥杯之REPEAT程序(较难)
循环次数分别是:2,2*5*6,2*5,2,1。循环次数的控制,即该入栈还是出栈是由代码每行的缩进量(缩进的空白字符数)决定的,因此本题也另外建立了一个栈,用来存储每行的空白字符数,和循环次数栈一起计算出入栈的顺序。数值项分别是4,5,7,8,9.只有在碰到“A=A+4”这样的语句时,才需要将当前的循环次数乘以数值项,累加到总的结果中即可计算出总的数据。这里的关键是看式子:2*4+2*5*6*5+2*5*7+2*8+9。最后是:2*(4+5*(6*5+7)+8)+9=403。
2024-03-09 22:11:54
464
原创 C/C++蓝桥杯之日期问题
问题描述:小明正在整理一批文献,这些文献中出现了很多日期,小明知道这些日期都在1960年1月1日至2059年12月31日之间,令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的,更加麻烦的是年份都省略了前两位,使得文献上的一个日期存在很多可能的日期与其对应。例如:01/01/01,这三组合法数据都是2001/01/01,所以这要进行去重。分析:本题的思路很简单,将输入的三个数据分别进行年,月,日的合法判断,如果合法就输出,但是求解本题要注意以下两点。
2024-03-09 14:06:57
2672
3
原创 C/C++蓝桥杯之模拟法问题
请你帮忙检查晶晶下周的日程安排,看看她下周会不会不高兴,如果会,那么她哪天最不高兴。输入一个数字,如果晶晶不会不高兴则输出零,如果会则输出最不高兴的是周几(用1 ,2,3 ,4,5,6,7分别表示,周一,周二,周三,周四,周五,周六,周日)。输入包括七行数据,分别表示周一到周日的日程安排,每行包括两个小于十的非负整数,用空格隔开分别表示晶晶在学校上课的时间和妈妈安排,她上课的时间。模拟法,顾名思义,就是利用计算机模拟问题的求解过程,从而得到问题的解,模拟法由于简单,因此又被称为"不是算法的算法"。
2024-03-08 23:15:19
503
1
原创 C/C++蓝桥杯之回文数
例如:给定一个十进制数56,若将56加65(即把56从右左读),则得到121是一个回文数。若一个数(首位不为0)从左向右与从右向左读都一样,则称之为回文数。如果在30步以内得到回文数,则输出步数,否则输出-1。
2024-03-06 00:30:02
604
原创 C语言指针
小伙伴们应该都知道在C语言中指针是非常难学的,指针它经常与内存联系,指向存放数据的地址,这样据很容易使小伙伴们绕晕,下面我就来简单解析一下指针!像我们学生一样,每个学生都拥有自己的宿舍号,每个宿舍就像内存一样像存放数据一样让我们住在里面,而宿舍就像指针一样能够指向我们在那个宿舍。
2024-02-16 22:53:43
1637
2
原创 C语言数组与扫雷游戏实现(详解)
这里我们采用另外一种方案,我们专门给一个棋盘(对应一个数组mine)存放布置好的雷的信息,再 给另外一个棋盘(对应另外一个数组show)存放排查出的雷的信息。假设我们排查(2,5)这个坐标时,我们访问周围的⼀圈8个⻩⾊位置,统计周围雷的个数是1 假设我们排查(8,6)这个坐标时,我们访问周围的⼀圈8个⻩⾊位置,统计周围雷的个数时,最下⾯的三 个坐标就会越界,为了防⽌越界,我们在设计的时候,给数组扩⼤⼀圈,雷还是布置在中间的9*9的坐 标上,周围⼀圈不去布置雷就⾏,这样就解决了越界的问题。
2024-02-07 19:30:27
503
1
原创 C语言中的作用域与生命周期
但是全局变量被 static 修饰之后,外部链接属性就变成了内部链接属性,只能在自己所在的源文件内部使用了,其他源文件,即使声明了,也是无法正常使用的。结论:static修饰局部变量改变了变量的生命周期,生命周期改变的本质是改变了变量的存储类型,本来一个局部变量是存储在内存的栈区的,但是被 static 修饰后存储到了静态区。extern 是用来声明外部符号的,如果一个全局的符号在A文件中定义的,在B文件中想使用,就可以使用extern进行声明,然后使用。全局变量的生命周期是:整个程序的生命周期。
2024-02-07 16:59:03
772
原创 猜数字游戏(扩展)
游戏要求:1. 电脑⾃动⽣成1~100的随机数2. 玩家猜数字,猜数字的过程中,根据猜测数据的⼤⼩给出⼤了或⼩了的反馈,直到猜对,游戏结束。
2024-01-31 19:00:05
881
1
原创 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。
【代码】一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。
2024-01-29 14:04:30
383
原创 用C语言在屏幕上打印杨辉三角
由于要打印整个杨辉三角的数据而非取出某一项,所以不可避免的一定是要填出每一项,没有偷懒的余地,那就老老实实的根据规律填空即可。所以我们只要按照这个方法填表即可。
2024-01-27 10:38:56
746
4
原创 用C语言完成杨氏矩阵
对于杨氏矩阵老说,右上角和左下角的元素是有特点的。右上角的元素是一行中最大的,一列中最小的。左下角的元素是一行中最小的,是一列中最大的。所以我们可以从右上角或者左下角开始查找。比如:从右上角开始查找的时候,右上角的元素比我们要查找元素小,我们就可以去掉右上角元素所在的这一行;右上角的元素比我们要查找的元素大,我们就可以去掉右上角元素所在的这一列。然后依然找右上角的元素继续和要查找的元素与比较。这样每一次比较去掉一行或者去掉一列。这个查找效率是高于遍历数组元素的,而且时间复杂度是小于O(N)。
2024-01-27 10:19:21
365
原创 用C语言实现一个对整形数组的冒泡排序,用指针打印完成
这只是一个简单的冒泡排序,还有许多改进,比如要是一开始就比较有序,我们能在里面加一点条件从而减少代码的运行次数,打印数组的话我使用的指针完成,你们也可以用常规方法完成。
2024-01-26 15:22:16
488
原创 Python中的第三方库
是一个符号计算的库,是一个全功能的计算机代数系统。代码简洁、易于理解, 支持符号计算、高精度计算、模式匹配、 绘制、 解方程、 微积分 、组合数学、离散数学、 几何学、概率与统计、 物理学等领域的计算和应用。是图像处理方面的重要第三方库,支持图像存储、处理和显示, 能够处理几乎所有的图片格式,可以完成对图像的缩放 剪、叠加以及向图像添加线条、 图像和文字等操作。是一款方便、易用、 专为科学和工程设计的Python工具包, 它是在numpy库的基础上增加了众多的数学、 科学以及工程计算中常用的库函数。
2024-01-18 15:00:24
526
原创 预处理详解
例如: 当我们根据同一个源文件要编译出一个程序的不同版本的时候, 这个特性有点用处。(假定某个程序中声明了一个某个长度的数组, 如果机器内存有限, 我们需要一个很小的数组,但是另外一个机器内存大些, 我们需要一个数组能够大些。##被称为记号粘合,这样的连接必须产生一个合法的标识符。在编译一个程序的时候我们如果要将一条语句(一组语句)编译或者放弃是很方便的。这里我们想想, 写一个函数求2个数的较大值的时候, 不同的数据类型就得写不同的函数。调试性的代码,删除可惜, 保留又碍事, 所以我们可以选择性的编译。
2024-01-18 00:55:23
859
原创 编译和链接
在ANSIC的任何一种实现中,存在两个不同的环境。第一种是:翻译环境,在这个环境中源代码被转换为可执行的机器指令(二进制指令)第二种:是执行环境,它用于实际执行代码。
2024-01-17 23:21:48
397
原创 用C语言实现二叉树的简单的基本操作
编写程序,用二叉链表存储表示方法,实现二叉树的基本操作。(3) 实现二叉树的前序、中序和后序遍历,输出遍历结果。(2) 根据二叉树的前序和中序遍历序列,构造二叉树。(1) 根据扩展二叉树的前序遍历序列,建立二叉树。
2023-12-24 18:06:10
492
1
原创 Python中的类的继承
子类 从父类继承得来的类方法中,是可以给子类直接使用的,但有的时候,需要对类方法进行修改。继承是面向对象的重要性质之一,它主要用于描述类与类之间的关系,在不改变原有类的基础上扩展原有类的功能。若类与类之间具有继承关系,被继承的类称为父类或基类,继承其他类的类称为子类或派生类,子类会自动拥有父类的公有成员。程序中一个类也可以继承多个类,即子类具有多个父类,也自动拥有所有父类的公有成员。子类与子类之间,有互不相同的特点。如果子类继承的多个父类是平行关系的类,那么子类先继承哪个类,便会调用哪个类的方法。
2023-12-17 11:56:36
451
原创 Python中类与对象
所谓面向对象的编程,就是首先研究实例对象,抽象提炼出这些对象的特征属性,与特征行为,生成类。类是抽象的,它是对一群具有相同特征和行为的事务的统称,例如,“书是人类进步的阶梯”中提到的书并不具体指哪本书,它就是一个类。例如,定义一个包含类属性、类方法的Car类,并在类方法中用cls访问和修改类的属性,然后创建Car类的对象car,对象car调用类方法。类的成员包括属性和方法,默认它们可以在类的外部被访问或调用,但考虑到数据安全问题,有时需要将其设置为私有成员,限制在类外部对其进行访问或调用。
2023-12-16 16:01:45
1353
原创 Python中的列表推导式
相信大家很多人都看不懂第一种是怎么实现的吧,当然今天我也主要是说明第一种的实现。上面就是具体的实现和答案,我就不在过多的打这代码了,相信大家应该都能看懂。某市计划举行一场“畅想明天”歌咏比赛,需要编写一个歌手打分程序,输入。,去掉一个最低分,去掉一个最高分,输出该选手的得分。下面给出一个例题:(看大家能否实现此题)返回一个新字符串,由组合数据类型。变量的每个元素组成,元素间用。构成,默认分隔符为空白字符。包括空格、换行符、制表符等。
2023-12-14 10:15:22
700
原创 用C语言实现字符串的逆置
用指针像交换两个数一样,创建一个临时变量,从而实现字符串的逆置!还可以用循环的方法输入字符串,具体怎么实现交给大家自己摸索了吧!直接将字符串数组里的内容倒叙输出就行。
2023-12-12 23:00:00
748
原创 在C语言中写一个函数返回参数二进制中1的个数。
采用相邻的两个数据进行按位与运算,此种方式,数据的二进制比特位中有几个1,循环就循环几次,而且中间采用了位运算,处理起来比较高效。此种方法的优点是:用位操作代替取模和除法运算,效率稍微比较高,缺点是:不论是什么数据,循环都要执行32次。一个int类型的数据,对应的二进制一共有32个比特位,可以采用位运算的方式一位一位的检测,具体如下。2. 可以:则该数据对应二进制比特位的最低位一定是0,否则是1,如果是1给计数加1。此种方法的缺陷:进行了大量的取模以及除法运算,取模和除法运算的效率本来就比较低。
2023-12-12 18:04:14
534
原创 用C语言实现两个数的交换(扩展)
那么我们还知道一些其他的方法吗,当然一般还是第一种创建第三个变量的好用,因为可读性高,便于维护,容易使人理解,但我们也不能忽视了一些其他的方法,比如只用两个变量我们是否能够完成两个数的交换呢,下面我将扩展几个关于只用两个变量交换两个数值大小的方法,小伙伴们自己也想一想能不能想出来!此种方法我想大家应该很难想到,这是用异或来实现的,如果大家学过计算机组成原理应该可以理解,若没有学习的话了解一下这种方法也行,其实呢,这种方法就是将我们要交换的两个数在计算机中写成补码的方式然后进行的异或运算。
2023-12-12 17:13:13
404
原创 用Python实现字符串的反转(逆置)
输出反转后的字符串。解决这个问题的基本思想是把字符串看作一个递归对象,当然前提你也要明白字符串的切片操作是怎样实现的。对于用户输入的字符串。
2023-12-12 00:00:00
858
原创 Python中的汉诺塔问题求解和科赫曲线绘制(递归扩展)
代表科赫曲线的阶数,表示生成科赫曲线过程的操作次数。科赫曲线初始化阶数为。阶科赫曲线,它包含四条线段。进一步对每条线段重复同样的操作后得到。,将其等分为三段,中间一段用边长为。杆上自上而下、由大到小顺序地串有。的等边三角形的两个边替代,得到。此节只为扩展,不做详解!
2023-12-11 01:00:00
668
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人