蓝桥杯题型解析(更新中)
历年蓝桥杯b组题型以及解析(待更新)
此题单⽤于刷同⼀类型的算法有助于提⾼⾃⼰
出现的错误:
1.审题问题
2.开数组的类型,有除法以及⼩数点⼀定思考要不要开double,如2016年第三题凑算式
题型
1.热⾝题型
1.煤球数⽬(2016第⼀题:煤球数⽬)
有⼀堆煤球,堆成三⾓棱锥形。具体:
第⼀层放1个,
第⼆层3个(排列成三⾓形),
第三层6个(排列成三⾓形),
第四层10个(排列成三⾓形),
…
如果⼀共有100层,共有多少个煤球?
请填表⽰煤球总数⽬的数字。
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int a=0,s=0;
for(int i=1;i<=100;i++){
a+=i;//每层
s+=a;//总和
}
cout<<s;
return0;
}
//171700
2.⽣⽇蜡烛(2016第⼆题:⽣⽇蜡烛)
某君从某年开始每年都举办⼀次⽣⽇party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他⼀共吹熄了236根蜡烛。
请问,他从多少岁开始过⽣⽇party的?
请填写他开始过⽣⽇party的年龄数。
注意:你提交的应该是⼀个整数,不要填写任何多余的内容或说明性⽂字。
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int sum;
for(int i=1;i<=200;i++){
sum=0;//遍历所有可能
for(int j=i;j<=200;j++){
sum+=j;
if(sum==236){
cout<<i<<endl;
return0;
}
二进制转换10进制快捷方法
}
}
return0;
}
//26
3.凑算式(2016第三题:凑算式)
题⽬详见2016年cb组第三题
运⽤stl库中的全排列函数next_permutation,切记数组⽤double类型
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
double a[50]={0,1,2,3,4,5,6,7,8,9};
int main()
{
int ans=0;
do{
if(a[1]+a[2]/a[3]+(a[4]*100+a[5]*10+a[6])/(a[7]*100+a[8]*10+a[9])==10)
ans++;
}while(next_permutation(a+1,a+10));
cout<<ans;
return0;
}
4.数列求值(2019第三题:数列求值)
题⽬详见2019年cb组第三题
斐波那契数列变形
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a=1,b=1,c=1,d;
for(int i=4;i<=n;i++){
d=(a+b+c)%10000;
a=b;
b=c;
c=d;
}
cout<<d%10000;
return0;
}
//4659
5.跑步训练(2020第⼀题:跑步训练)
题⽬详见2020年cb组第⼀题
⼿算
//2分钟+300 60秒600 ⼀秒就是10
//60分钟跑了9000体⼒
619600
629300
639900
6496003840+40=3880
6.空间(2021:试题A: 空间)
⼩蓝准备⽤ 256MB 的内存空间开⼀个数组,数组的每个元素都是 32 位⼆进制整数,如果不考虑程序占⽤的空间和维护内存需要的辅助空间,请问256MB 的空间可以存储多少个 32 位⼆进制整数?
题⽬详见2021年cb组第⼀题
1B=8位 4B=32位 256*1024*1024/4
//67,108,864
7. 整数分解(⼗⼆届蓝桥杯⽐赛第⼆场第六题)
a+b+c+d+e=2021
2021个⼩球有2020个空隙
选择4个空隙 放上隔板 空隙前的隔板加起来等于2021
原⽅程正整数解的个数等于摆放隔板的⽅案数
排列组合 c(r,n)= (n n-1n-2…n-r+1) / r的阶乘
2020个位置,选择四个空隙放隔板 ⽅案数排列组合公式:C n=2020 r=4 =2020201920182017 / 4321
题⽬可能爆int ⽤long long
#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
long long ans=1;
int main(){
for(int i=2020,j=4;j>=1;i--,j--){
cout<<ans<<"*"<<i<<"/"<<j<<endl;
ans*=i/j;
}
cout<<endl;
cout<<ans;
return0;
}
2.字符串题型
1.2016 【第七届蓝桥杯省赛】 C/C++ B组
第⼀题:煤球数⽬
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int sum;
for(int i=1;i<=200;i++){
sum=0;
for(int j=i;j<=200;j++){
sum+=j;
if(sum==236){
cout<<i<<endl;
return0;
}
}
}
return0;
}
//26
2.REPEAT 程序(2020第四题:REPEAT 程序)//应该有错误
#include<bits/stdc++.h>
using namespace std;
int q[1050],res;
string s[1050];
int main()
{
q[0]=1;
for(int i=1;i<=8;i++){
getline(cin,s[i]);
}
for(int i=1;i<=8;i++){
int col=0;
for(;s[i][col]=' ';col++);
if(s[i][col]=='A'){
int t=s[i][col+8]-'0';
res+=t*q[col/4];
}
else{
int t=s[i][col+7]-'0';
q[col/4+1]=t*q[col/4];
}
}
cout<<res<<endl;
return0;
}
3. 解码(2020第7题解码)
#include<bits/stdc++.h>
using namespace std;
string s;
int sum;
int main()
{
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]>'0'&&s[i]<='9'){
int t=s[i]-'0'-1;
while(t--){
cout<<s[i-1];
}
}
else{
cout<<s[i];
}
}
return0;
}
3. Excel地址(某年蓝桥杯题⽬)
Excel单元格的地址表⽰很有趣,它使⽤字母来表⽰列号。⽐如,
A表⽰第1列,
B表⽰第2列,
Z表⽰第26列,
AA表⽰第27列,
AB表⽰第28列,
BA表⽰第53列,
…
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论