请大神指导算法!
Tokai_teiorunner
本人小白,最终的目标是用代码创建银河帝国,谢谢你可以见证我的成长。
展开
-
数组的实现 数据结构 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 · 319 阅读 · 1 评论 -
静态建立二叉树 数据结构 C语言实现
下列代码要创建一个上图所示的二叉树(静态建立,如果要实现动态建立要用到递归,那个我还没学)我们下面要建立的二叉树比较低级,就一个初始化和一个先序遍历的功能。以后我学会的其他二叉树的操作一定会以一个萌新的视角分享自己的理解给大家,希望大佬们多多包涵。先序遍历是先访问根节点然后访问左子树和右子树的一种二叉树的遍历方式。另外二叉树还有另外两种遍历方式,中序遍历和后序遍历。中序遍历是先访问左子树再访问根节点再访问右子树。后续遍历是先访问左子树再访问右子树再访问根节点。要确定一棵二叉树..原创 2022-02-25 12:03:41 · 436 阅读 · 0 评论 -
汉诺塔——递归实例
汉诺塔作为一款益智玩具该怎么玩呢?我们可以通过递归来实现他汉诺塔的规则是:1.要把第一根柱子上的所有饼都移动到第三根柱子上。2.一次只可以移动一块饼。3.大饼永远不能放在小饼上面。饼数较少时还好解决,当饼数越来越多时,需要的步骤也是指数级地增加。所以这时,我们可以通过递归的手段来实现。我们假设有n块饼,序号越大说明这块饼越大。当饼数为n时,第一步我们需要把n上面n-1块饼借助第三根柱子移动到第二根柱子上第二步就可以直接把n移动到第三根柱子上了。第三步再把n-1块饼借助..原创 2022-02-21 12:12:55 · 113 阅读 · 0 评论 -
静态循环队列 数据结构 C语言实现
静态队列,可以理解为一个功能受限的数组静态队列只能是循环队列,如果不是循环的,那必然在不断出队的操作中,队列的内存空间变得越来越小。下面是代码。我们队列的结构体里面包含了四个元素,队列的头和队列的尾,以及一个指向调用数组的第一个元素位置的指针,还有这个数组本身的长度。在循环队列中,判断是否为空的条件是rear == front,为了避免判断是否为满的条件与之冲突,我们设计时就留出一个位置不用来存储数据。当(rear + 1)%length == front的时候就直接报满。我们是如何实.原创 2022-02-20 14:09:09 · 471 阅读 · 0 评论 -
蓝桥杯真题 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 · 1523 阅读 · 0 评论 -
蓝桥杯训练----回文日期~
题目描述2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。有人表示 20200202 是 “千年一遇” 的特殊日子。对此小明很不认同,因为不到 2 年之后就是下一个回文日期:20211202 即 2021 年 12 月 2 日。也有人表示 20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回文日期。对此原创 2022-02-14 16:31:23 · 178 阅读 · 0 评论 -
蓝桥杯真题-----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 · 1289 阅读 · 0 评论 -
蓝桥杯训练----成绩统计(简单)
题目描述小蓝给学生们组织了一场考试,卷面总分为 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 · 196 阅读 · 0 评论 -
蓝桥杯真题----杨辉三角。
思路: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 · 6575 阅读 · 1 评论 -
蓝桥杯真题-----激光样式~python解决方案
题目如下激光样式x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?显然,如果只有3台机器,一共可以成5种样式,即:全都关上(sorry, 此时无声胜有声,这也算一种)开一台,共3种开两台,只1种30台就不好算了,国王只好请你帮忙了。要求提交一个整数,表示30台激光器能形成的样式种数。注意,只提交一个整数,不要填写任何多余的原创 2022-02-10 16:06:20 · 202 阅读 · 0 评论 -
蓝桥杯真题————李白打酒。
题目描述 话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒 2 斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店 5 次,遇到花 10 次,已知最后一次遇到的是花,他正 好把酒喝光了。 请你计算李白遇到店和花的次序,可以把遇店记为 a,遇见花记为 b。则: babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出 所有可能方案的个数(包含题目给出的)见思路:1. 直接就暴力枚举,弄个十四层的f原创 2022-02-05 20:26:44 · 1886 阅读 · 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 · 96 阅读 · 0 评论 -
蓝桥杯真题———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 · 308 阅读 · 0 评论