excel可以畫圖嗎 [藍橋杯]Excel題
文章目錄
前言
藍橋杯的題是什么?很多小伙伴看到這個標題感覺很疑惑,藍橋杯不是只有填空和代碼題嗎?題是什么玩意?
這里我來解釋一下,由于藍橋杯的比賽環境有一套自己的系統,沒有像別的比賽限制那么大~~(沒錯,說的就是PTA)~~。
因此我們可以使用各種電腦自帶的工具,比如的時間,畫圖等等
但我們這里要看的是功能的強大性遠超你想象的,(本文以wps中的為例使用)
借助這些工具,我們甚至可以在不會編寫代碼的狀況下完美的獲取正確答案!
本文講解一些題目的具體操作,以后有精力會繼續補充
因為各個組別有很多題都重復,所以只標注年份和省/國賽
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;
}
因此我們可以直接在里面拖動,獲取所有的日期,在寫一個簡單的程序就能計算出來了
輸入一種日期形式,然后只管拖動,直到日期到達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 = %d\n", ans);
printf("**********\n");
return 0;
}
運行程序,直接在黑窗口里復制,最后按ctrl+z退出循環
2020 省賽(第二場) 跑步鍛煉
【問題描述】
小藍每天都鍛煉身體。正常情況下,小藍每天跑1千米。如果某天是周一或者月初(1日),為了激勵自己,小藍要跑2千米。如果同時是周一或月初,小藍也是跑2千米。
小藍跑步已經堅持了很長時間,從2000年1月1日周六(含)到2020年10月1日周四(含)。請問這段時間小藍總共跑步多少千米?
【答案】
8879
該題的關鍵就是找到周一和每月的一號
其實寫代碼也可以解決,但是如果用到可以做到一行代碼也不寫就算出來
日期只管拖就完事了
注意這里我多寫了一行標題屬性,所以從2000年1月1日 到 2020年10月1日 共有7580天
篩選周一
然后第二列我們需要用到的一個函數() 注意這里的周一是數字2
共有1083個周一
篩選月初
這里我們還需要一列需要用到day()函數
year() () day() 三兄弟函數分別獲取日期類型的年月日
共有250個月初
把即是周一有又是月初的篩選出來
共有34個月初和周一重合
最后計算答案(沒錯,你甚至可以用計算器,cmd中快捷指令calc)
sum = 總天數+周一天數+月初天數-重合天數
2019 省賽 年號字符
【問題描述】
小明用字母 A對應數字 1,B對應 2,以此類推,用 Z對應 26。
對于 27以上的數字,小明用兩位或更長位的字符串來對應,例如 AA對應27,AB對應28,AZ對應52,LQ對應329。
請問2019對應的字符串是什么?
【答案】
BYQ
代碼實現見:168. 表列名稱
而在藍橋杯中也有原題:2017初賽 地址
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;
}
};
本題是赤裸裸的題,(純度100%)直接橫著拖就完事了
雖然大家很明顯的可以看出這是一個26進制的問題,但是具體寫代碼的細節是真的多
在操作過程中發現一件事情,就是后綴為.xls的只能拖動255列,而.xlsx就沒有這個限制了
2018 省賽 第幾天
【問題描述】
2000年的1月1日,是那一年的第1天。
那么,2000年的5月4日,是那一年的第幾天?
【答案】
125
這題也挺純的,直接拖日期
好吧,其實這題直接用手算都行,但誰叫我們懶呢
2015 省賽 星系爆炸
【問題描述】
在X星系的廣袤空間中漂浮著許多X星人造“炸彈”,用來作為宇宙中的路標。
每個炸彈都可以設定多少天之后爆炸。
比如:阿爾法炸彈2015年1月1日放置,定時為15天,則它在2015年1月16日爆炸。
有一個貝塔炸彈,2014年11月9日放置,定時為1000天,請你計算它爆炸的準確日期。
聲明:本站所有文章資源內容,如無特殊說明或標注,均為采集網絡資源。如若本站內容侵犯了原著者的合法權益,可聯系本站刪除。