- 前言
- 2021 国赛
- 完全日期
- 2020 省赛(第二场)
- 跑步锻炼
- 2019 省赛
- 年号字符
- 2018 省赛
- 第几天
- 2015 省赛
- 星系爆炸
- END
蓝桥杯的excel题是什么?很多小伙伴看到这个标题感觉很疑惑,蓝桥杯不是只有填空和代码题吗?excel题是什么玩意?
这里我来解释一下,由于蓝桥杯的比赛环境有一套自己的系统,没有像别的比赛限制那么大~~(没错,说的就是PTA)~~。
因此我们可以使用各种电脑自带的工具,比如windows的时间,画图等等
但我们这里要看的是功能的强大性远超你想象的excel,(本文以wps中的excel为例使用)
借助这些工具,我们甚至可以在不会编写代码的状况下完美的获取正确答案!
本文讲解一些题目的具体 *** 作,以后有精力会继续补充
因为各个组别有很多题都重复,所以只标注年份和省/国赛
2021 国赛 完全日期【问题描述】
如果一个日期中年月日的各位数字之和是完全平方数,则称为一个完全日期。
例如:2021 年 6 月 5 日的各位数字之和为 2 + 0 + 2 + 1 + 6 + 5 = 16,而16 是一个完全平方数,它是 4 的平方。所以 2021 年 6 月 5 日是一个完全日期。
例如:2021 年 6 月 23 日的各位数字之和为 2 + 0 + 2 + 1 + 6 + 2 + 3 = 16,是一个完全平方数。所以 2021 年 6 月 23 日也是一个完全日期。
请问,从 2001 年 1 月 1 日到 2021 年 12 月 31 日中,一共有多少个完全日期?
【答案】
977
自己写一个日期递增的方法必然很麻烦
并且容易写错细节 比如忘了润年怎么判断怎么
bool isLeapYear (int n) { //可以被400整除 || 可以被4整除却不能被100整除 //优先级 && > || return ( (n%400 == 0) || (n%100 != 0 && n%4 == 0)) ? true : false; }因此我们可以直接在excel里面拖动,获取所有的日期,在写一个简单的程序就能计算出来了
输入一种日期形式,然后只管拖动,直到日期到达2021/12/31
可能时间比较漫长(其实都不用一首歌),但是能够保证百分之百的正确!
共7672行,然后ctrl+c
#include#define int long long using namespace std; signed main (void) { string s; int ans = 0; while (cin >> s) { int sum = 0; for (auto &ch : s) { if(isdigit(ch)) { sum += ch - '0'; } } int Sqrt = sqrt(sum); if (Sqrt* Sqrt == sum) { ans++; } } printf("**********n"); printf("ans = %dn", ans); printf("**********n"); return 0; }
运行程序,直接在黑窗口里复制,最后按ctrl+z退出循环
2020 省赛(第二场) 跑步锻炼【问题描述】
小蓝每天都锻炼身体。正常情况下,小蓝每天跑1千米。如果某天是周一或者月初(1日),为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。
小蓝跑步已经坚持了很长时间,从2000年1月1日周六(含)到2020年10月1日周四(含)。请问这段时间小蓝总共跑步多少千米?
【答案】
8879
该题的关键就是找到周一和每月的一号
其实写代码也可以解决,但是如果用到excel可以做到一行代码也不写就算出来
日期只管拖就完事了
注意这里我多写了一行标题属性,所以从2000年1月1日 到 2020年10月1日 共有7580天
筛选周一
然后第二列我们需要用到excel的一个函数weekday() 注意这里的周一是数字2
共有1083个周一
筛选月初
这里我们还需要一列需要用到day()函数
year() month() day() 三兄弟函数分别获取日期类型的年月日
共有250个月初
把即是周一有又是月初的筛选出来
共有34个月初和周一重合
最后计算答案(没错,你甚至可以用计算器,cmd中快捷指令calc)
sum = 总天数+周一天数+月初天数-重合天数
2019 省赛 年号字符【问题描述】
小明用字母 A对应数字 1,B对应 2,以此类推,用 Z对应 26。
对于 27以上的数字,小明用两位或更长位的字符串来对应,例如 AA对应27,AB对应28,AZ对应52,LQ对应329。
请问2019对应的字符串是什么?
【答案】
BYQ
代码实现见leetcode:168. Excel表列名称
而在蓝桥杯中也有原题:2017初赛 Excel地址
class Solution { public: string convertToTitle(int columnNumber) { string s; int n = columnNumber; while(n) { s += (n-1)%26+'A'; n = (n-1)/26; } reverse(s.begin(), s.end()); return s; } };
本题是赤裸裸的excel题,(纯度100%)直接横着拖就完事了
虽然大家很明显的可以看出这是一个26进制的问题,但是具体写代码的细节是真的多
2018 省赛 第几天在 *** 作过程中发现一件事情,就是后缀为.xls的excel只能拖动255列,而.xlsx就没有这个限制了
【问题描述】
2000年的1月1日,是那一年的第1天。
那么,2000年的5月4日,是那一年的第几天?
【答案】
125
这题也挺纯的,直接拖日期
好吧,其实这题直接用手算都行,但谁叫我们懒呢
2015 省赛 星系爆炸【问题描述】
在X星系的广袤空间中漂浮着许多X星人造“炸d”,用来作为宇宙中的路标。
每个炸d都可以设定多少天之后爆炸。
比如:阿尔法炸d2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸d,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19
【答案】
2017-08-05
又是一道赤裸的日期题目。
X星系的广袤空间中漂浮着许多X星人造“炸d”,用来作为宇宙中的路标。
每个炸d都可以设定多少天之后爆炸。
比如:阿尔法炸d2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸d,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19
【答案】
2017-08-05
又是一道赤裸的日期题目。
具体 *** 作和上文讲到的类似,大家就自行 *** 作吧。
END
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)