自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 数组的实现 数据结构 C语言实现

我们下面建立的数组包括:1.初始化2.遍历3.插入4.添加5.弹出(pop)6.判断是否为空7.判断是否为满由于Dev C++的c语言项目中是没有布尔类型的,所以我们用整数0和1来代替False和True#include <stdio.h>#include <stdlib.h>#include <malloc.h>typedef struct Array{ int * pHead;//数组第一个元素的地址! int l

2022-02-28 15:26:02 375 1

原创 快速排序 C语言实现

快速排序(假设我们要排成升序)的思想是:取第一个值为中间值,然后遍历(虽然是从数组两边同时遍历,但是时间复杂度依旧是O(n)),把比中间值小的放在中间值左边,把比中间值大的放在中间值右边。然后两边继续刚才的循环,其实也就是递归。#include <stdlib.h>#include <stdio.h>#include <malloc.h>void sort_(int *,int,int);//排序 int findpos(int*,int,int

2022-02-25 16:42:23 509

原创 静态建立二叉树 数据结构 C语言实现

下列代码要创建一个上图所示的二叉树(静态建立,如果要实现动态建立要用到递归,那个我还没学)我们下面要建立的二叉树比较低级,就一个初始化和一个先序遍历的功能。以后我学会的其他二叉树的操作一定会以一个萌新的视角分享自己的理解给大家,希望大佬们多多包涵。先序遍历是先访问根节点然后访问左子树和右子树的一种二叉树的遍历方式。另外二叉树还有另外两种遍历方式,中序遍历和后序遍历。中序遍历是先访问左子树再访问根节点再访问右子树。后续遍历是先访问左子树再访问右子树再访问根节点。要确定一棵二叉树..

2022-02-25 12:03:41 476

原创 动态栈 数据结构 C语言实现

动态栈本质上就是一个操作受限的链表。栈的结构由两部分组成,一个是包含了顶部指针和底部指针的结构体另一个就是链表顶部指针(p->pNext)指向的是栈顶的有效结点,底部指针指向的是头结点(数据域不存放有效数据)此链表和普通的单链表不同的是为了更好地实现栈地各种操作,我们是由栈顶元素以此指向栈底元素。下面代码包括了初始化,入栈,出栈,遍历,判断是否为空,和返回有效长度的操作。#include <stdio.h>#include <stdlib.h>#i

2022-02-21 15:20:56 753

原创 汉诺塔——递归实例

汉诺塔作为一款益智玩具该怎么玩呢?我们可以通过递归来实现他汉诺塔的规则是:1.要把第一根柱子上的所有饼都移动到第三根柱子上。2.一次只可以移动一块饼。3.大饼永远不能放在小饼上面。饼数较少时还好解决,当饼数越来越多时,需要的步骤也是指数级地增加。所以这时,我们可以通过递归的手段来实现。我们假设有n块饼,序号越大说明这块饼越大。当饼数为n时,第一步我们需要把n上面n-1块饼借助第三根柱子移动到第二根柱子上第二步就可以直接把n移动到第三根柱子上了。第三步再把n-1块饼借助..

2022-02-21 12:12:55 128

原创 静态循环队列 数据结构 C语言实现

静态队列,可以理解为一个功能受限的数组静态队列只能是循环队列,如果不是循环的,那必然在不断出队的操作中,队列的内存空间变得越来越小。下面是代码。我们队列的结构体里面包含了四个元素,队列的头和队列的尾,以及一个指向调用数组的第一个元素位置的指针,还有这个数组本身的长度。在循环队列中,判断是否为空的条件是rear == front,为了避免判断是否为满的条件与之冲突,我们设计时就留出一个位置不用来存储数据。当(rear + 1)%length == front的时候就直接报满。我们是如何实.

2022-02-20 14:09:09 498

原创 蓝桥杯真题 Python A组 路径

思路:(动态规划)1.由题意可知,在台阶1时步数为零,在台阶2时,步数为1和2的公倍数2,所以在台阶2时步数是2,我们根据动态规划的思想,我们设立一个列表记录在台阶i时所需要的最小步数。2.假想一下当你站在台阶i时你可能是从台阶i - j 上过来的(for j in range(1,22)注意一个前提,i-j 是要大于等于0 的),所以台阶i 上最少步数为min([(min_step[i-j] + com(i+1,i-j+1)) for j in range(1,22) if i - j ..

2022-02-18 09:11:11 1538

原创 数据结构 链表建立和相关操作函数的编写

#include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef struct Node/*我们先创立一个结点的数据类型,其中包括一个整型数据和一个和自己同类的指针 变量*/{ int data; struct Node * pNext;}NODE,*PNODE;/*typedef用于给建立的数据类型和其地址进行定名,这里.

2022-02-17 15:50:32 677

原创 蓝桥杯训练----回文日期~

题目描述2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。有人表示 20200202 是 “千年一遇” 的特殊日子。对此小明很不认同,因为不到 2 年之后就是下一个回文日期:20211202 即 2021 年 12 月 2 日。也有人表示 20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回文日期。对此

2022-02-14 16:31:23 211

原创 蓝桥杯真题-----python A组 卡片

思路:1.我们建立一个存值的字典,默认值为2021,check为检验值,如果循环到的数不符合题意时,来帮助外层循环break,然后我们开始一个从1开始循环。2.当循环到凑不出的数时,内外层同时爆炸,此时输出的start便是我们所求的值。start = 1check = 0dic_ = {'1':2021,'2':2021,'3':2021,'4':2021,'5':2021,'6':2021,'7':2021,'8':2021,'9':2021,'0':2021}while star..

2022-02-13 12:22:00 1310

原创 蓝桥杯训练----成绩统计(简单)

题目描述小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。输入描述输入的第一行包含一个整数 n\ (1 \leq n \leq 10^4)n (1≤n≤104),表示考试人数。接下来 nn 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。输出描述输出两行,每行一个百分数

2022-02-13 12:04:17 225

原创 蓝桥杯训练----单词分析(简单)

题目描述小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。输入描述输入一行包含一个单词,单词只由小写英文字母组成。对于所有的评测用例,输入的单词长度不超过 1000。输出描述输出两行,第一行包含一个英文字母,表示单词中出现得最多的字

2022-02-13 11:28:09 197

原创 39级阶梯~————蓝桥杯真题

第39级台阶题目描述:小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?输出格式:输出一个整数思路:递归!1.我们设置两个形参step_now表示当前所在的阶数,step_sum表示当前所走的步数。2.基线条件:只有当在阶数等于39且步数为偶数时,ret

2022-02-12 11:11:05 173

原创 蓝桥杯真题----杨辉三角。

思路:1.先设立一个空列表用于装数据,index代表列表里面已经有多少个数了,sum_代表现在轮到第几个数正要加入列表,i 代表现在所在的行数。2.进行二重循环外层while内层for,当最新添加的数据等于我们输入的n时,直接内外两层break同时引爆。然后输出数值。3.我们添加数据时根据题意描述,当内层循环的变量等于1或者等于外层循环的 i 时,添加的数据是1,其他情况添加的数据是item = summary[sum_-i-1] + summary[sum_-i]。n = int (..

2022-02-11 18:01:35 6615 1

原创 蓝桥杯真题----未名湖的烦恼~python递归解决方案

未名湖边的烦恼问题描述  每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。  每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)输入格式  两个整数,表示m和n输出格式  一个整数,表示队伍的排法的方案数。样例输入3 2样例输出5数据规

2022-02-10 16:46:30 151

原创 蓝桥杯真题-----激光样式~python解决方案

题目如下激光样式x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?显然,如果只有3台机器,一共可以成5种样式,即:全都关上(sorry, 此时无声胜有声,这也算一种)开一台,共3种开两台,只1种30台就不好算了,国王只好请你帮忙了。要求提交一个整数,表示30台激光器能形成的样式种数。注意,只提交一个整数,不要填写任何多余的

2022-02-10 16:06:20 230

原创 蓝桥杯真题————李白打酒。

题目描述 话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒 2 斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店 5 次,遇到花 10 次,已知最后一次遇到的是花,他正 好把酒喝光了。 请你计算李白遇到店和花的次序,可以把遇店记为 a,遇见花记为 b。则: babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出 所有可能方案的个数(包含题目给出的)见思路:1. 直接就暴力枚举,弄个十四层的f

2022-02-05 20:26:44 1955 3

原创 蓝桥杯真题————带分数 ovo

问题描述100 可以表示为带分数的形式:100 = 3 + 69258 / 714。还可以表示为:100 = 82 + 3546 / 197。注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。输入格式从标准输入读入一个正整数N (N<1000*1000)输出格式程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。注意:不要求输出每个表示,只统计有多少表示法!样例输入1100

2022-02-04 12:25:23 130

原创 蓝桥杯真题———excel地址

题目如下Excel单元格的地址表示很有趣,它使用字母来表示列号。比如,A表示第1列,B表示第2列,Z表示第26列,AA表示第27列,AB表示第28列,BA表示第53列,…当然Excel的最大列号是有限度的,所以转换起来不难。如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列呢?本题目既是要求对输入的数字, 输出其对应的Excel地址表示方式。例如,输入:26则程序应该输出:Z再例如,输入:2054则程序应该输出:BZZ我们约定,输入的整

2022-01-30 16:58:18 341

原创 蓝桥杯真题———较小分数

回到小学----真分数:分子小于分母的分数既约分数:分子分母互质,也就是说最大公约数是1x星球数学城的入口验证方式是:屏幕上显示一个真分数,需要你快速地找到一个比它小的既约分数,要求这个分数越大越好。同时限定你的这个分数的分母不能超过100。思路:1. 先设立一个用于检验对象是否为互质分数的函数check(),然后进行暴力遍历,分子从1循到输入的X值分母从X循环到100。2.要设立好条件,根据题意分母不能超过100,所以分子就更不能超过100,设立一个if门槛,当x大于等于100时直

2022-01-30 15:34:36 372

原创 蓝桥杯猴子分香蕉

5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!请计算一开始最少有

2022-01-30 14:56:21 78

原创 蓝桥杯哥德巴赫分解

题目如下:哥德巴赫猜想认为:不小于4的偶数都可以表示为两个素数的和你不需要去证明这个定理,但可以通过计算机对有限数量的偶数进行分解,验证是否可行。实际上,一般一个偶数会有多种不同的分解方案,我们关心包含较小素数的那个方案。对于给定数值范围,我们想知道这些包含较小素数方案中最大的素数是多少。比如,100以内,这个数是19,它由98的分解贡献。你需要求的是10000以内,这个数是多少?注意,需要提交的是一个整数,不要填写任何多余的内容(比如,说明性的文字)思路:1.先设定一个函

2022-01-30 14:34:08 110

原创 2019年第十届蓝桥杯 - 省赛 - C/C++大学A组 - G. 外卖店优先级

思路:1.最外层循环模拟真实时间线,内层第一个循环和第二个检验是否有订单,有则dic.value(优先级数)加2,无则减1.2.内层第三个循环用于检验这N家店中哪些需要离开优先级哪些需要加入优先级。3. n,m,t,ts,i_d等价于题意中的N,MT,ts,id,这个dic字典用于存储N家店个个店家的优先级数值,priority则用于存储在优先级的店家的ID号。n = int(input())m = int(input())t = int(input())ts = [...

2022-01-26 16:29:38 711

原创 2018年第九届蓝桥杯 - 国赛 - C/C++大学B组 - D. 调手表题目

思路:1.由于不能回调,问题变得非常简单,先用外层循环遍历每一种指定要调时间点的情况。2.内层循环用来判断走到该点最少要用多少步。3.用K步调的时候绝对不允许超过index的值,少的部分用(index - start )的值去弥补。n = int(input())k = int(input())step_sum_max = 0for index in range(n): calculate = 0 start = 0 while start + k &lt..

2022-01-25 17:25:55 656

原创 蓝桥杯每日一题:蓝桥杯2016年第七届C/C++省赛A组第六题-寒假作业

思路:八重循环然后根据题意条件进行判断再计数!1.有八重循环,每一重循环都要把拿出来的数从新的copy列表里面剔除,避免重复数字。2.用题意条件判断,用summit计数,最后输出结果。summary = [x for x in range(1,14)]summit = 0for item in summary: summary_1 = summary.copy() summary_1.remove(item) for item_1 in summary_1: ..

2022-01-24 16:16:06 601

原创 2018年第九届蓝桥杯 - 省赛 - C/C++大学B组 - C. 乘积尾零

思路:1.出零的情况有两种,第一种是数最后几位本身的零,第二种是由除零以外最后位数是5和(2, 4,6,8)的数相乘得出来的。2.第二种情况得零位数取决于最后位是5和最后位是非零偶数两者之中得较小值!3.将两种情况的结果相加即为最后结果。string =('''5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6113 5659 5245 7432 3051 4434 6704 3594 9937 1173 6866 ..

2022-01-23 19:09:59 370

原创 2016年第七届蓝桥杯 - 省赛 - C/C++大学C组 - H. 冰雹数

思路:1.其实也没啥思路,感觉题目就已经是在报答案了。。。。咳咳,在外层设置一个从1到N+1的for循环。2.内层就是每一个数的雪花数汇总的列表,把所有的数都加到这个列表里面。当for循环最后一个数结束之后在把列表里面最大的数打出来即可。start = int(input('输入一个正整数值:'))summary = []for index in range(1,start+1): while index != 1: if (index % 2) == 0...

2022-01-22 14:57:52 101

原创 2016年第七届蓝桥杯 - 省赛 - C/C++大学B组 - B. 生日蜡烛

思路:双循环:外层循环假设岁数,内存累加循环如果发现蜡烛数量不小于236时立即break!1.因为不知道他今年刚过完几岁生日,也不知道他是从什么时候开始过的生日,我们可以先假设他是从1岁过的生日,外层循环依次加1。2.当内层蜡烛数不小于236时从内层循环退出,到外层循环进行检验,如果sum(蜡烛总数)==236即符合题意输出结果。age = 1while age: sum = 0 age1 = age while age1: ..

2022-01-22 14:37:05 364

原创 2015年第六届蓝桥杯 - 省赛 - C/C++大学B组 - H. 移动距离

思路:1.根据题意我们可以根据楼号排序的特点把m号楼和n号楼的x坐标和y坐标确定下来。我们现在假设x轴正方向是右,y轴正方向是竖直向下↓2.根据题意要确定x轴坐标首先要先确定它是在奇数行还是偶数行:①当它在奇数行时((m//v)%2 != 0)分两种情况,当m能被v整除时是在最后一位,当m不能被v整除时是在。(提示:// 是整除运算符,将计算结果的小数部分舍去得一整数)x轴第(m%v)位。②当它在偶数行时((m//v)%2 == 0)也是分两种情况,当m能被v整除时是在x轴第一...

2022-01-21 15:35:06 456

原创 2015年第六届蓝桥杯 - 省赛 - C/C++大学A组 - C. 奇妙的数字

思路:1.把一个数从零开始递增一旦符合上述条件时就输出并从循环中break。2.条件判断:①不能有重复,有元素重复的话肯定是不对的。②在最后得出的列表中如果没有0至9所有的元素肯定也是错的。③上述两条件只要有一个错了即是不满足条件。num = 1while num: trail = 1 a = list(str(num ** 2)) + list(str(num ** 3))#得到将该数的平方和立法中各位数组成的列表 b = [] for it..

2022-01-21 13:04:00 227

原创 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - H. 四平方和

思路:1.四重循环使下层循环的数总是小于上一层循环的数2.满足if条件时就按规定格式输出数值value = int (input('请输入一个小于5000000的正整数:'))for a in range(0,int(value**0.5)): for b in range(0,a+1): for c in range(0,b+1): for d in range(0,c+1): if a**2 + b...

2022-01-20 20:21:45 75

原创 2016年第七届蓝桥杯 - 省赛 - C/C++大学C组 - C. 平方怪圈

starter = 2general = []while starter: a = list(str(starter)) sum = 0 for b in a: sum += int(b)**2 starter = sum if starter in general: break general.append(starter)print(max(general))

2022-01-20 15:11:13 369

原创 2018年第九届蓝桥杯 - 省赛 - C/C++大学B组 - A.第几天

big = [1,3,5,7,8,10,12]small =[4,6,9,11]month = 5day = 4sum = 0for index in range(1,month): if month in big: sum += 31 elif month in small: sum += 30 elif month == 2: sum += 29print('这是2000年第[%s]天!',sum+day)...

2022-01-19 18:44:02 67

原创 2017年第八届蓝桥杯 - 省赛 - C/C++大学C组 - B. 兴趣小组

def enlist(sb): a_list = list(sb.split(',')) real_a_list = [] for item in a_list: real_a_list.append(item.replace('\n','')) return real_a_lista = '''12894792, 92774113, 59529208, 22962224, 02991600, 83340521, 87365045, 40818286, .

2022-01-19 13:09:53 355

原创 蓝桥杯贪吃蛇作业~

a = ''' H###### #### # # # # # # # #### # # # # # # # .

2022-01-17 14:52:51 4415

原创 蓝桥杯矩形切割作业

a = 2019b = 324index = 0while max(a, b) > 1 and a != b: index = index + 1 if a > b: a = a - b else: b = b - a print(index)

2022-01-16 12:23:19 230

原创 立法和原创请勿转载

sum1=0sum2=0sum3=0for value in (1,2020): a = list(str(value)) if '0' in a or '1' in a or '2' in a or '9' in a: sum1+=value sum2+=value**2 sum3+=value**3print('和为',sum1)print('平方和为',sum2)print('立方和为',sum3)...

2022-01-15 14:13:32 117

原创 质数原创请勿转载

index = 0value = 4boot = 1while index<2017: value+=1 boot = 1 for a in range(2,int(value**0.5)): if value%a==0: boot = 0 if boot: index+=1print(value)

2022-01-14 17:06:28 70

原创 数的分解原创请勿转载

sum = 0for a in range(1,2018): for b in range(1,2018): c=2019-a-b d = str(a) + str(b) + str(c) e = list(d) if a + b + c == 2019 and c > 0 and a!=b and a!=c and b!=c : if '2' not in e: if.

2022-01-13 19:53:48 87

原创 年号数解答原创请勿转载

dic={'A':1,'B':2,'C':3,'D':4,'E':5,'F':6,'G':7,'H':8,'I':9,'J':10,'K':11, 'L':12,'M':13,'N':14,'O':15,'P':16,'Q':17,'R':18,'S':19,'T':20,'U':21,'V':22,'W':23,'X':24,'Y':25,'Z':26}num=int(input('please input your number:'))jieguo=[]while num: yu.

2022-01-12 20:02:40 119

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除