2012-2020蓝桥C++ B组蓝桥杯省赛真题(第一题)
http://t.csdn.cn/zTemz 原文链接
目录
2012 第一题:微生物增殖
2013第一题:高斯日记
2014第一题:啤酒和饮料
2015第一题:奖券数目
2016 第一题:煤球数目
2017第一题:购物单
2018第一题:第几天
2019第一题:组队
2020第一场 第一题:跑步训练
2020第二场 第一题:门牌制作
2012 第一题:微生物增殖
题目描述
假设有两种微生物X和Y,X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。一个新出生的X,半分钟之后吃掉1个Y,且从此开始每隔1分钟吃掉1个Y。已知新出生的X=10,Y=89,求60分钟后Y的数目。若X=10,Y=90呢?
本题的要求就是写出这两种初始条件下,60分钟后Y的数目。
题目分析
从题目中知道Y是每2分钟分裂一次,所以我们只要知道X的变化,每次X吃掉Y的数目后面算出来就可以了,这个也可以叫做控制变量法,从X得出Y.
本题需要从前几次的分裂情况可以发现X暗藏的规律,1小时有120个半分钟,我列了一个表格如下:
从上面表格可以分析出不论是新出生的还是以前的X,都是每半分钟进行吃Y的操作,每3分钟进行一次分裂,故这题的操作如下
在60分钟内进行判断:
1.如果为每个0.5分钟,除2余1, Y=Y-X
2.如果为每个3分钟,被6整除, X=X*2
3.如果为每个2分钟,被4整除,Y=Y*2
题目代码
#include<iostream>
using namespace std;int main()
{int x = 10, y = 89;for(int i = 1; i <=120; i++){if(i%2==1){y = y - x;}if(i%4== 0)//2分钟有4个0.5{y =y* 2;}if(i%6==0)//3分钟有6个0.5{x = x*2;}}cout << "x = "<< x << endl <<"y = "<< y;return 0;
}
题目答案
x = 10485760
y = -979369984//表示微生物Y为0,灭绝
2013第一题:高斯日记
题目描述
大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210。后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于1777年4月30日,在高斯发现的一个重要定理的日记上标注着5343,因此可算出那天是1791年12月15日。高斯获得博士学位的那天日记上标着8113,请你算出高斯获得博士学位的年月日。
提交答案的格式是:yyyy-mm-dd,例如:1980-03-21
题目分析
首先确定发生事件的年份,就是用总的天数减去每年天数
然后确定在该年的月份以及日期。
题目代码
#include <iostream>using namespace std;
//判断闰年
bool leap_year(int year)
{return (year%400==0)||((year%4==0)&&(year%100!=0));
}
//yearday 这一年的天数,num 除年以外的总天数
int main()
{int n;cin >>n;//1777-04-30;int num = n+31+28+31+30-1;int days[13]= {0,31,0,31,30,31,30,31,31,30,31,30,31};int year = 1777,month=0,day =0;int yearday;while(1){if(leap_year(year)){yearday=366;}else{yearday=365;}if(num<yearday){break;}num=num -yearday;year ++;}//闰年二月if(leap_year(year)){days[2]=29;}else{days[2]=28;}month=1;for(int i=1; i<=12; i++){if(num>days[i]){num =num-days[i];month++;}else break;}cout<<year<<"-"<<month<<"-"<<num;// cout<<year<<"-";
// if(month<10)
// cout<<"0"<<month<<"-";
// else cout<<month<<"-";
// if(day<10)
// cout<<"0"<<day;
// else cout <<day;return 0;
}
题目答案
1799-07-16
2014第一题:啤酒和饮料
题目描述
啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。
题目分析
简单的循环暴力,两层循环就可
题目代码
#include <iostream>
using namespace std;int main()
{//x为啤酒,y为饮料for(int x=1; x<823/23; x++){for(int y=1; y<823/19; y++){if(23*x+19*y==823){if(x<y){cout << x <<ends << y <<endl;}}}}return 0;
}
题目答案
啤酒 11
2015第一题:奖券数目
题目描述
有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。
请提交该数字(一个整数),不要写任何多余的内容或说明性文字。
题目分析
暴力手法,5层循环,脱了裤子放屁
题目代码
#include <iostream>using namespace std;int main()
{int num =0;for(int i=1; i<9; i++){for(int j=1; j<10; j++){for(int k=1; k<10; k++){for (int m=1; m<10; m++){for(int n=1; n<10; n++){num++;}}}}}cout<<num;return 0;
}
题目答案
52488
2016 第一题:煤球数目
题目描述
有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6(排列成三角形),第四层10个(排列成三角形),…如果一共有100层,共有多少个煤球?
请填表示煤球总数目的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
题目分析
该题目是一个模拟题,首先找出他的规律
第一层 1
第二层 1+2
第三层 1+2+3
第四层 1+2+3+4
可以看出他的规律了,就是依次加,最后的要求是求全部的煤球数
题目代码
#include <iostream>using namespace std;int main()
{//sum表示总煤球数,temp表示每层的数目int sum =0,temp=0;for (int i=1; i<=100; i++){temp=temp+i;sum = sum+temp;}cout << sum << endl;return 0;
}
题目答案
171700
2017第一题:购物单
题目描述
小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场物。小明很厌烦,但又不好推辞。
这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。小明也有个怪癖不到万不得已,从不刷卡,直接现金搞定。现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。
取款机只能提供100元面额的纸币。小明想尽可能少取些现金,够用就行了。 你的任务是计算出,小明最少需要取多少现金。以下是让人头疼的购物单,为了保护隐私,物品名称被隐藏了。
以下是让人头疼的购物单,为了保护隐私,物品名称被隐藏了。
-----------------
**** 180.90 88折
**** 10.25 65折
**** 56.14 9折
**** 104.65 9折
**** 100.30 88折
**** 297.15 半价
**** 26.75 65折
**** 130.62 半价
**** 240.28 58折
**** 270.62 8折
**** 115.87 88折
**** 247.34 95折
**** 73.21 9折
**** 101.00 半价
**** 79.54 半价
**** 278.44 7折
**** 199.26 半价
**** 12.97 9折
**** 166.30 78折
**** 125.50 58折
**** 84.98 9折
**** 113.35 68折
**** 166.57 半价
**** 42.56 9折
**** 81.90 95折
**** 131.78 8折
**** 255.89 78折
**** 109.17 9折
**** 146.69 68折
**** 139.33 65折
**** 141.16 78折
**** 154.74 8折
**** 59.42 8折
**** 85.44 68折
**** 293.70 88折
**** 261.79 65折
**** 11.30 88折
**** 268.27 58折
**** 128.29 88折
**** 251.03 8折
**** 208.39 75折
**** 128.88 75折
**** 62.06 9折
**** 225.87 75折
**** 12.89 75折
**** 34.28 75折
**** 62.16 58折
**** 129.12 半价
**** 218.37 半价
**** 289.69 8折
--------------------
题目分析
将数据复制到excel中,数据->分列,把88折这些手动改成0.88这些,用product函数,再用sum函数。
题目答案:
5200
2018第一题:第几天
题目描述
2000年的1月1日,是那一年的第1天。
那么,2000年的5月4日,是那一年的第几天?
注意:需要提交的是一个整数,不要填写任何多余内容。
题目分析
1.能被4整除,且不能被100整除的,是闰年。2.世纪年份能被400整除的是闰年。
((year%4==0)&&(year%100!=0))||(year%400==0)
直接手算吧,历届蓝桥杯算日期中最简单的一道题,一三五七八十腊,31天。其余30,闰年二月29,普通28;
题目代码
#include<iostream>using namespace std;
int main()
{//首先2000年是闰年 2月29天 int ans = 31+29+31+30+4;cout << ans <<endl;return 0;
}
题目答案
125
2019第一题:组队
题目描述
作为篮球队教练,你需要从以下名单中选出 1号位至 5号位各一名球员,组成球队的首发阵容。每位球员担任 1号位至 5号位时的评分如下表所示。请你计算首发阵容 1号位至5号位的评分之和最大可能是多少?
1 97 90 0 0 0
2 92 85 96 0 0
3 0 0 0 0 93
4 0 0 0 80 86
5 89 83 97 0 0
6 82 86 0 0 0
7 0 0 0 87 90
8 0 97 96 0 0
9 0 0 89 0 0
10 95 99 0 0 0
11 0 0 96 97 0
12 0 0 0 93 98
13 94 91 0 0 0
14 0 83 87 0 0
15 0 0 98 97 98
16 0 0 0 93 86
17 98 83 99 98 81
18 93 87 92 96 98
19 0 0 0 89 92
20 0 99 96 95 81
题目分析
把数据复制到excel表格
题目答案
490
2020第一场 第一题:跑步训练
题目描述
小明要做一个跑步训练。
初始时,小明充满体力,体力值计为 10000 。如果小明跑步,每分钟损耗 600 的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是均匀变化的。
小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循环。如果某个时刻小明的体力到达 0 ,他就停止锻炼。
请问小明在多久后停止锻炼。为了使答案为整数,请以秒为单位输出答案。答案中只填写数,不填写单位。
题目分析
由题意,在每个2分钟里,消耗300,由于在每个2分钟后是消耗,因此体力在出现小于600时,在接下来的1分钟内,体力就会消耗殆尽,在 32个两分钟,也就是64分钟时,体力剩余400。
题目代码
#include <iostream>using namespace std;int main()
{int n=10000;int run = 600/60;//跑步时每秒的消耗int time=0;while(n){if(n-600<0){time=time+n/run;break;}n=n-600;n=n+300;time=time+120;}cout<<time;return 0;
}
2020第二场 第一题:门牌制作
题目描述
小蓝要为一条街的住户制作门牌号。这条街一共有2020位住户,门牌号从1到2020编号。小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌1017需要依次粘贴字符1、0、1、7,即需要1个字符0,2个字符1,1个字符7。请问要制作所有的1到2020号门牌,总共需要多少个字符2?
题目分析
暴力搜索,判断每个位置的字符是否满足条件
题目代码
#include <iostream>using namespace std;
//判断每一个数中有多少个2
//法一:非递归
int judge(int num)
{int counter=0;while(num){if(num%10==2){counter++;}num =num/10;}return counter;
}
//法二:递归
int shu=0;
void much_two(int n){if(n==0){return;}if(n%10==2){shu++;}if(n){n=n/10;}much_two(n);
}
int main()
{int sum=0;for(int i=1; i<=2020; i++){
// 法一sum = sum+judge(i);
// 法二much_two(i);}cout<<"法一:"<<sum<<endl;cout<<"法二:"<<shu;return 0;
}
题目答案
624
第一题: 解密
题目描述
小明设计了一种文章加密的方法:对于每个字母 c,将它变成某个另外的字符 Tc。下表给出了字符变换的规则:
例如,将字符串 YeRi 加密可得字符串 EaFn。
小明有一个随机的字符串,加密后为:EaFnjISplhFviDhwFbEjRjfIBBkRyY
(由 30 个大小写英文字母组成,不包含换行符),请问原字符串是多少?
(如果你把以上字符串和表格复制到文本文件中,请务必检查复制的内容
是否与文档中的一致。在试题目录下有一个文件 str.txt,第一行为上面的字符
串,后面 52 行依次为表格中的内容。)
【答案提交】
这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个
只包含 30 个大小写英文字母的字符串,在提交答案时只填写这个字符串,填写
多余的内容将无法得分。
题目分析
题目答案
YeRikGSunlRzgDlvRwYkXkrGWWhXaA
2012-2020蓝桥C++ B组蓝桥杯省赛真题(第一题)相关推荐
- 2020年第十一届蓝桥杯C/C++ B组第二场省赛真题
2020年第十一届蓝桥杯C/C++ B组第二场省赛真题 第一题 门牌制作 题目描述 小蓝要为一条街的住户制作门牌号.这条街一共有2020位住户,门牌号从1到2020编号.小蓝制作门牌的方法是先制作0到 ...
- 小唐开始刷蓝桥(一)2020年第十一届C/C++ B组第二场蓝桥杯省赛真题
目录 一.门牌制作 二.既约分数 三.蛇形填数 四.跑步锻炼 五.七段码 六.成绩统计 七.回文日期 八.子串分值和 九.平面切分 十.字串排序 上一篇: 呆呆子,这就是小唐的第一篇啦! 下一篇: 小 ...
- 2020年第十一届C/C++ B组第二场蓝桥杯省赛真题
2020年第十一届C/C++ B组第二场蓝桥杯省赛真题 真题 第一题:门牌制作 第二题:既约分数 第三题:蛇形填数 第四题:跑步锻炼 第五题:七段码 第六题:成绩统计 第七题:回文日期 第八题:子串分 ...
- 第11届蓝桥杯省赛真题剖析-2020年6月21日Scratch编程初中级组
[导读]:超平老师的<Scratch蓝桥杯真题解析100讲>已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第125讲. 第11届蓝桥杯省赛,这是2020年6月2 ...
- 蓝桥到此一游—2012年C/C++ B组蓝桥杯省赛真题(一)
目录 一,微生物增殖 二,古堡算式 三.比酒量 四,奇怪的比赛 五,方阵转置 六,大数乘法 七,放棋子 八,密码发生器 九,夺冠概率 十,取球游戏 一,微生物增殖 题目 假设有两种微生物X和Y,X出生 ...
- 2012年第三届C/C++ B组蓝桥杯省赛真题
2013年第四届C/C++ B组蓝桥杯省赛真题 真题 第一题:微生物增殖 第二题:福尔摩斯探险 第三题:比酒量 第四题:奇怪的比赛 第五题:方阵转置 第六题:大数乘法 第七题:放棋子 第八题:密码发生 ...
- 小唐开始刷蓝桥(九)2012年第三届C/C++ B组蓝桥杯省赛真题
文章目录 前言 一.微生物增殖 二.古堡算式 三.比酒量 四.奇怪的比赛 五.方阵转置 六.大数乘法 七.放棋子 八.密码发生器 九.夺冠概率 十.取球游戏 上一篇: 小唐开始刷蓝桥(八)2013年第 ...
- 2012年第三届C B组蓝桥杯省赛真题
这里是蓝桥杯历年的题目专栏,将会陆续更新将往年真题以及解答发布出来,欢迎各位小伙伴关注我吖,你们的点赞关注就是给我最好的动力!!! 全网最全蓝桥杯历年真题及详细解答 目录 第一题:微生物增殖 第三题: ...
- 小唐开始刷蓝桥(二)2019年第十届C/C++ B组蓝桥杯省赛真题
文章目录 前言 一.组队 二.年号字符 三.数列求值 四.数的分解 五.迷宫 六.特别数的和 七.完全二叉树的权值 八.等差数列 九.后缀表达式 十.灵能传输 上一篇: 小唐开始刷蓝桥(一)2020年 ...
- 小唐开始刷蓝桥(八)2013年第四届C/C++ B组蓝桥杯省赛真题
文章目录 前言 一.高斯日记 二.马虎的算式 三.第39级台阶 四.黄金连分数 五.前缀判断 六.三部排序 七.错误票据 八.翻硬币 九.带分数 十.连号区间数 上一篇: 小唐开始刷蓝桥(七)2014 ...
最新文章
- Echart图表入门
- PAT甲级题目翻译+答案 AcWing(数学)
- 静态、动态内存分配比较
- [BUUCTF-pwn]——qctf2018_stack2
- Full_of_Boys训练2总结
- java输入args不能为空_java程序入口为什么有的空括号在args前面有的?
- 优秀的代码永垂不朽!
- mysql 5.7 root密码重置(centos 7)
- ai进入轮廓模式怎么退出_AI 绘图工具里,我不知道按了什么键一保存都是轮廓了!怎么办!怎样恢复呢?...
- 小程序实现下拉刷新功能
- 服务器安装macos虚拟机,Win10虚拟机VMware安装黑苹果MacOS Sierra图文教程
- IDE也卷了,微软杀入嵌入式IDE
- servlet3 文件上传
- Salesforce中国区或将解散?国产SaaS如何在竞争中扬长避短
- php sql 条件拼组_将数组里的元素拼接成sql里的in条件
- Html5实现的语音搜索功能
- ubuntu磁盘io性能测试工具hdparm
- B.開發中間層和持久層注意事項和技巧()
- 微信公众平台开发需要懂哪些技术
- 智慧园区物业可视化大屏
热门文章
- 程序员 笔记本 amd python_2019程序员笔记本推荐?
- 如何解决百度不收录和降权
- HSM加密机 (分级密钥管理)
- 深度强化学习入门:用TensorFlow构建你的第一个游戏AI
- 用友nc57 调用存储过程
- 2022-2028全球与中国聚对苯二甲酸丁二酯(PBT)市场现状及未来发展趋势
- wince搜狗地图_搜狗地图API - Sogou Maps Service API V2.0
- HTML中的position属性
- 【首尔大学韩国语】第五课 去饭店吗?
- linux战争雷霆无法运行,战争雷霆怎么设置中文?war thunder简体中文