蓝桥杯每日一刷(第一天)
文章目录
前言
距离蓝桥杯还剩短短俩个月的时间,最后的号角已经吹响,没有撤退可言!
最后的时间如果要彻底的搞懂比赛所需的算法,很难,但是最后的成绩可能也不是很好,所以我们用真题+解析的形式来做最后的冲刺!
话不多说,开启我们的第一天!
2015年b组:奖券数目
有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。 请提交该数字(一个整数),不要写任何多余的内容或说明性文字。
思路:不要4,在5位数中剔除4即可,枚举,累加没有4的,下面我们用代码来实现一下这个操作、
#include<iostream>
using namespace std;
//筛选出不含4的数
bool check(int x) {
while (x) {
if (x % 4 == 0)
return false;
x /= 10;
}
return true;
}
int main()
{
int sum = 0;//定义数目
for (int i = 10000; i <= 99999; i++) {
if (check(i)) sum++;
}
cout << sum;
return 0;
}
或者拆开来看
#include<iostream>
using namespace std;
int main()
{
int cnt = 0;
for (int a = 1; a <= 9; a++)
{
if (a != 4)
for (int b = 0; b <= 9; b++)
{
if (b != 4)
for (int c = 0; c <= 9; c++)
{
if (c != 4)
for (int d = 0; d <= 9; d++)
{
if (d != 4)
for (int e = 0; e <= 9; e++)
{
if (e != 4)
cnt++;
}
}
}
}
}
cout << cnt << endl;
return 0;
}
2015b 星系炸弹
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。 每个炸弹都可以设定多少天之后爆炸。 比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。 有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19 请严格按照格式书写。不能出现其它文字或符号。
实际上在蓝桥杯中碰到时间问题填空的情况下,excel是最简单的,我们先来用excel来得出结果,最后再用代码实现一遍
不怕你们笑话我,答案是2017-08-05,定时1000天,看比如,所以说不要在这里踩坑,下面我们看代码实现
#include<iostream>
using namespace std;
//判断平年闰年
int days[13] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
bool check(int x) {
if (x % 400 == 0 || (x % 100 != 0 && x % 4 != 0)) {
return true;
}
return false;
}
int main() {
bool is_run = false;
int y = 2014, m = 11, d = 9;
for (int i = 1; i <= 1001; i++) {
d++;
if (m == 2) {
if (is_run) {
if (d >= 29) m++, d = 0;
}
else {
if (d >= 28) m++, d = 0;
}
}
else if (d >= days[m - 1]) m++, d = 0;
if (m > 12) {
y++;
m = 1;
is_run = check(y);
}
}
printf("%d-%02d-%02d", y, m, d);
return 0;
}
2015 b 三羊献瑞
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。 请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
思路:乍一看没有思路,我们仔细来看(纯废话……) 填空题,没有任何的限制,直接暴力吧,后面我们再看,要脑子的算法
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,f,g,h;
int numOne,numTwo,sum;
for(a=2;a<=9;a++)
{
for(b=0;b<=9;b++)
{
for(c=0;c<=9;c++)
{
for(d=0;d<=9;d++)
{
for(f=0;f<=9;f++)
{
for(g=0;g<=9;g++)
{
for(h=0;h<=9;h++)
{
if(a!=b && a!=c && a!=d && a!=f && a!=g && a!=h
&& b!=c && b!=d && b!=f && b!= g &&b!=h
&& c!=d && c!=f && c!= g && c!=h
&& d!=f && d!=g &&d!=h
&& f!=g && f!=h
&& g!=h
&& a!=1 && b!=1 && c!=1 && d!=1 && f!=1 && g!=1 && h!=1)
{
numOne=a*1000 + b*100 + c*10 + d;
numTwo=1*1000 + f*100 + g*10 + b;
sum=1*10000 + f*1000 + c*100 + b*10 + h;
if(sum==(numOne + numTwo))
{
cout<<1<<f<<g<<b<<endl;
}
}
}
}
}
}
}
}
}
return 0;
}
我们把每个数字都带进去进行一个简单的推导
#include<iostream>
using namespace std;
int main() {
for (int b = 2; b <= 6; b++) {
for (int d = 2; d <= 7; d++) {
if (d == b) continue;
if (d == b + 1) continue;
if (b + d <= 10) continue;
int h = b + d - 10;
if (h == b || h == d || h == b + 1) continue;
printf("%d%d%d%d\n", 1, 0, 8, b);
}
}
return 0;
}
最后
今天我们就刷这几个题,题不算难,但是都是真题,坚持下去,时间会给出答案!
相关文章
- 每日一练6.14
- 考研竞赛每日一练 day 17 道有关反三角函数的极限三种求解方法
- 考研竞赛每日一练 day 25 一道经典偏导求解问题
- 每日一题之Vue的异步更新实现原理是怎样的?
- 每日一题(根据二叉树创建字符串,二叉树层序遍历,二叉树的层序遍历 II)
- 嘀嗒出行、北森重启上市进程;Meta推出脸书订阅服务;2023数博会将于5月26日至28日在贵阳举办丨每日大事件
- 谷歌自研数据中心芯片预计明年下半年量产;Bing即将发布iOS和Android移动版;百度收购GBI,加码AI医疗丨每日大事件
- 小米责令泄密合作方赔偿一百万;Facebook母公司元宇宙部门亏损900亿;谷歌测试新AI聊天产品丨每日大事件
- 国开基金4亿元增资中国电子云;甲骨文发布2023年云计算五大预测;IDC:2022年上半年中国AI市场规模23亿美元丨每日大事件
- 菜鸟的每日力扣系列——688. 骑士在棋盘上的概率(#Day39)
- 生信星球每日学习day3-毽子
- 每日一更:设计模式学习-基础知识
- 每日一题: 数组中数字出现的次数
- 每日一题(2022-04-26)—— 三维形体投影面积
- MySQL数据库的每日收益(mysql一天收入)