蓝桥杯
打工咸鱼
这个作者很懒,什么都没留下…
展开
-
第十二届蓝桥杯省赛C/C++省赛B组—卡片
题解:仔细思考会发现:(1)在所有的牌中一定是1先用完,所有我们减少思考的问题规模,直接考虑1使用完的情况。(2)但是当1使用完并不代表不能继续往下拼,在1刚用完的地方到下一个使用1的地方这之间的数是可以继续拼的。例如:当i=300时,拼到991,1就用完了,但是992、993、994、995、996、997、998、999这些是不需要用1拼的。所以 i=count(结合下面代码)时循环并不结束,i<count才会结束。答案:3181代码:#include<iostrea.原创 2022-04-08 18:02:16 · 1110 阅读 · 0 评论 -
第十二届蓝桥杯省赛C/C++ B组—空间
这是一道计算机基础题,知道就会,不知道就,,,(现在恶补也不晚)在计算机中有这样的存储单位关系:数据的存储单位有 位 和 字节 :(1)位(bit)计算机中最小的信息单位。一 “位” 只能表示0和1中的一个。(2)字节(Byte)每8个位称为字节(简写为B)。字节是计算机中数据存储的最基本单位。1B=8bit1KB=1024B1MB=1024KB1GB=1024MB1TB=1024GB所以本题中:32位 二进制整数 = 32/8 = 4个字节256MB=256 * 1024 .原创 2022-04-05 15:49:53 · 1092 阅读 · 0 评论 -
第十一届蓝桥杯C/C++B组省赛——成绩统计
题目不难,只不过需要对小数进行处理,这是较为麻烦的点。对于C++中的小数的输出的处理可自行查询一下(权当补充知识了!!!)。下面直接上代码:#include<iostream>using namespace std;#include<iomanip>//处理小数输出所需要的头文件int main(){ int n,m; char s='%'; int count1=0,count2=0; cin>>n; for(int i=0; i<n..原创 2022-03-23 22:27:30 · 234 阅读 · 0 评论 -
【第十一届蓝桥杯C/C++大学B组第二场】——跑步锻炼
这道题与2018年第九届蓝桥杯c/c++A组的星期一类似,但在细节上这道题要麻烦点。(详情可见我的另一篇博文:添加链接描述)言归正传,我们开始分析这道题目。(1)每天跑1千米。(2)周一或者月初(1号)跑2千米。(3)2000年1月1号周六到2020年10月1号周四,这一段时间总共跑了多少千米。明确问题后我们该如何设计算法使得电脑能像我们一样去统计出周一或者月初的天数并去计算总共的公里数呢?我们会从2000年的1月1日(周六)开始数,数完1月数2月,数完2000年数2001年,直到2020年1.原创 2022-02-06 01:24:02 · 1406 阅读 · 0 评论 -
思特奇杯编程之星算法初赛—【第十一届蓝桥杯C/C++大学B组第二场】——既约分数
题解:(1)遍历分子,分母。范围(1-2020)(2)算法判断两个数的最大公约数为1。最大公约数定义:几个自然数中公有的约数,叫做这几个数的公约数,而其中最大的那个叫做最大公约数。求最大公约数的方法有很多种(可以搜索头条百科,有编程方法提供),这里介绍辗转相除法。辗转相除法(又称欧几里德算法):先求其中任意两个数的最大公约数,再求这个最大公约数与第三个数的最大公约数,依次如此,直到最后一个数。最后所得的那个最大公约数为所有这些数的最大公约数。辗转相除法代码:#include<st.原创 2022-01-24 20:38:56 · 350 阅读 · 0 评论 -
【思特奇杯·云上蓝桥-算法集训营】第三周—爬楼梯
题解:这其实也是斐波那契数列即fn=f(n-1)+f(n-2)。思路:题目规定说每次只能跳一级或者两级,也就意味着如果我们要跳到第四级台阶,只能从第三级或者第二级台阶跳上去。因此我们可以简单转化为四级台阶的跳法等于三级台阶+二级台阶的跳法。即f(4)=f(3)+f(2),由此我们看到这就是一个斐波那契数问题:fn=f(n-1)+f(n-2)。递归(递归算法在测试用例里是超时的,即无法通过测试):#include<stdio.h>int jump_step(int n){ if(n.原创 2022-01-20 23:25:31 · 241 阅读 · 0 评论 -
【思特奇杯·云上蓝桥-算法集训营】第三周—第n个泰波那契数
题解:与斐波那契数相似,只不过要多出一项。将n=0代入可得递推公式:T3=T0+T1+T2。即Tn=T(n-1)+T(n-2)+T(n-3)。递归:#include<stdio.h>int tri(int n){ if(n==0) { return 0; } else if(n<=2) { return 1; } else { return tri(n-1)+tri(n-2)+tri(n-3); }}int main(){ int n; .原创 2022-01-20 22:09:00 · 174 阅读 · 0 评论 -
【思特奇杯·云上蓝桥-算法集训营】第三周—斐波那契数
题解:明确问题:给定一个数n,计算关于斐波那契数列的第n项的和。解题思路:由题目可知(1)当n>=2时,每一项为前两项的和,即第n项等于第n-1项+第n-2项(fib(n)=fib(n-1)+fib(n-2))。(2)当n<2时,返回n的值即可。递归算法(效率较低):#include<stdio.h>int fib(int n){ if(n<2) { return n; } else { return fib(n-1)+fib(n-2);.原创 2022-01-20 19:56:47 · 455 阅读 · 0 评论 -
【思特奇杯·云上蓝桥-算法集训营】第三周—杨辉三角形
C语言—杨辉三角形题解:明确问题:把杨辉三角形里的数字按从上到下、从左到右排成数列,并给定一个数N,在这个数列里找到N第一次出现时的位置。解题思路:因此此题需要我们去遍历一个数组并与N相比较,找到返回其数组下标即可得到N第一次出现的位置。(1)先将杨辉三角形表示出来。(2)把杨辉三角形里的数字放到一个数组里。(3)遍历这个数组与N相比较。那么如何表示杨辉三角呢?通过观察上面的杨辉三角可以有如下发现:(1)每一行的开始与末尾都为1。(2)除此之外每个数都为其正上方及其左边的数的和。原创 2022-01-20 13:45:08 · 329 阅读 · 0 评论 -
【思特奇杯·云上蓝桥-算法集训营】第一周
蓝桥杯竞赛题——跑步训练原创 2022-01-07 21:48:19 · 413 阅读 · 0 评论 -
2019第十届蓝桥杯c/c++A组——平方和
题解:这个题分两部分看:(1)找到符合有:2、0、1、9的数。(2)给找到的数进行平方然后累加求和。找2、0、1、9,也就意味着把一个数拆开,拿出来比较,有,就符合条件。这里就用到取余%,**取整/**符号。但是随着循环会发现,累加的数横跨千位,万位以上,而我们又不知道具体是多少位。这里可以切割数字,**用取余%符号得到最后一位,用取整/符号把已经比较了的数扔掉,然后循环,**直到比较完所有的位数。注意平方的和的值很大,使用long long类型,输出格式为:lld累加用循环和pow()函数即.原创 2021-04-17 16:28:13 · 421 阅读 · 0 评论 -
2019第十届蓝桥杯c/c++A组——数列求值
题解:题目分两部分思考:(1)写出算法表达每一项的值(2)如何求第20190324项的最后4位数字。从第4项开始,每项为前三项的和。即表达为a=i+j+k,(i为前三项第三项,j为前三项第二项,k为前三项第一项),在这里就用到值的交换,每循环完一次,就进行一次值的交换,形成递进的感觉。具体为:i=j,j=k,k=a;(注意顺序不要出错)。注意a=4(表示从第4项开始)。求最后4位数字,一般运用**%符号,取最后4位即%10000**。(如果不理解,可随机取个数35421来测试一下,%10,%10.原创 2021-04-17 11:18:47 · 292 阅读 · 0 评论