?[導(dǎo)讀]:超平老師計(jì)劃推出《全國(guó)青少年信息素養(yǎng)大賽Python編程真題解析》50講,這是超平老師解讀Python編程挑戰(zhàn)賽系列的第16講。
全國(guó)青少年信息素養(yǎng)大賽(原全國(guó)青少年電子信息智能創(chuàng)新大賽)是“世界機(jī)器人大會(huì)青少年機(jī)器人設(shè)計(jì)與信息素養(yǎng)大賽”賽事之一,由中國(guó)電子學(xué)會(huì)主辦,包含很多賽項(xiàng),大賽自2013年舉辦,已連續(xù)成功舉辦八屆,已正式入圍“2022-2025學(xué)年面向中小學(xué)生的全國(guó)性競(jìng)賽活動(dòng)名單”。?
大賽旨在激發(fā)廣大青少年的科學(xué)興趣和想象力,培養(yǎng)鉆研探究、創(chuàng)新創(chuàng)造的科學(xué)精神和實(shí)踐能力,促進(jìn)青少年科技創(chuàng)新活動(dòng)的廣泛開(kāi)展,發(fā)現(xiàn)和培養(yǎng)一批具有科研潛質(zhì)和創(chuàng)新精神的青少年科技創(chuàng)新后備人才。
大賽主要競(jìng)賽類別包括電子科技、智能機(jī)器人、軟件編程三類,全國(guó)青少年P(guān)ython編程挑戰(zhàn)賽就屬于其中的軟件編程類。
一.賽事說(shuō)明
2023年(第9屆)Python挑戰(zhàn)賽賽程分為初賽、復(fù)賽和總決賽三個(gè)階段。初賽是資格賽,復(fù)賽是地方選拔賽,總決賽是全國(guó)各地選拔的精英匯聚在一起進(jìn)行PK。
本屆Python挑戰(zhàn)賽是在線上舉行,參賽選手登錄大賽官網(wǎng)在指定頁(yè)面完成答題并提交答案。評(píng)定成績(jī)的依據(jù)是同時(shí)考慮得分和用時(shí)兩個(gè)方面,首先是得分高者名次靠前,如果得分一樣,則用時(shí)少者名次靠前。
2023年全國(guó)青少年P(guān)ython編程挑戰(zhàn)賽華北賽區(qū)(北京)初中組復(fù)賽于2023年7月15日正式舉行。一共有6道題,全是編程題,考試時(shí)間是90分鐘。
6道題目執(zhí)行時(shí)間均限時(shí)1000毫秒,內(nèi)存256M。題目分別是求余數(shù)、最大身高差、重復(fù)字符、出租車費(fèi)用、分錢方案和錯(cuò)排問(wèn)題,接下來(lái)超平老師為大家一一解析。
二.真題解析
第1題,求余數(shù)
題目描述:
輸入一個(gè)正整數(shù),輸出這個(gè)整數(shù)除以5的余數(shù)。
輸入描述:
輸入一行一個(gè)正整數(shù)
輸出描述:
輸出這個(gè)整數(shù)除以5的余數(shù)
樣例1:
輸入:
12
輸出:
2
[超平老師解讀]:
本題考查的知識(shí)點(diǎn)是取模運(yùn)算符,在Python編程中,取模運(yùn)算符使用%,代碼比較簡(jiǎn)單。
[參考代碼]:
第2題,最大身高差
題目描述:
上了初中之后,很多同學(xué)身高都開(kāi)始迅速增長(zhǎng),不過(guò)有的同學(xué)生長(zhǎng)發(fā)育的早一些,有的同學(xué)會(huì)晚一些。
現(xiàn)在學(xué)校的生理健康老師想統(tǒng)計(jì)一下班級(jí)里面學(xué)生身高的最大跨度值(最大跨度值=身高最大值-身高最小值)。
任意輸入一行整數(shù),中間用空格間隔,輸出身高最大跨度值。
輸入描述:
輸入一行整數(shù),中間用空格間隔。
輸出描述:
輸出身高最大跨度值。
樣例1:
輸入:
168 ?152 ?140 ?179 ?155 ?162 ?172
輸出:
39
[超平老師解讀]:
本題考查的知識(shí)點(diǎn)包括輸入處理和列表的操作。
輸入一行整數(shù),中間使用空格間隔,我們要將每個(gè)數(shù)字提取出來(lái),需要使用split方法,然后再轉(zhuǎn)換成整數(shù)即可。
身高最大跨度,就是最大身高減去最小身高,所以只需要找到這兩個(gè)列表項(xiàng)即可,可以使用兩種方法來(lái)實(shí)現(xiàn):
1). 直接使用max和min函數(shù);
2). 對(duì)列表按照從小到大的順序排序;
[參考代碼]:
方法1,使用max和min函數(shù),代碼如下:
方法2,使用列表排序方法,代碼如下:
第3題,重復(fù)字符
題目描述:
輸入一個(gè)字符串s,將s中的每個(gè)字符都重復(fù)一次,然后輸出這個(gè)新的字符串,例如,當(dāng)s="abc"時(shí),輸出"aabbcc"。
輸入描述:
輸入一個(gè)字符串s。
輸出描述:
輸出一個(gè)新的字符串。
樣例1:
輸入:
abcd
輸出:
aabbccdd
[超平老師解讀]:
本題考查的知識(shí)點(diǎn)是字符串處理及運(yùn)算,首先需要對(duì)字符串進(jìn)行遍歷操作,分別獲取每一個(gè)字符,然后將該字符重復(fù)一遍,再進(jìn)行連接。
對(duì)應(yīng)的可以采取兩種方法來(lái)編寫代碼,一是使用字符串拼接,二是直接利用列表推導(dǎo)式和解包操作。
[參考代碼]:
方法1,使用字符串拼接,代碼如下:
方法2,使用列表推導(dǎo)式結(jié)合解包操作,代碼如下:
第4題,出租車費(fèi)用
題目描述:
某市出租車的計(jì)費(fèi)標(biāo)準(zhǔn)是:
起步價(jià) (3千米以內(nèi),包括3千米) 14元,以后每超過(guò)1千米(不足1千米的按1千米計(jì)算)另加價(jià)3元。
小可家到學(xué)校距離n千米,他打車需要多少錢?
輸入描述:
輸入一個(gè)數(shù)n表示小可家到學(xué)校距離。
輸出描述:
輸出打車的費(fèi)用。
樣例1:
輸入:
8.8
輸出:
32
[超平老師解讀]:
本題考查的知識(shí)點(diǎn)包括if語(yǔ)句和算術(shù)運(yùn)算,重點(diǎn)是向上取整。
在Python編程中,可以使用數(shù)學(xué)庫(kù)math中的ceil方法來(lái)實(shí)現(xiàn)向上取整。
[參考代碼]:
完整的代碼如下:
第5題,分錢方案
題目描述:
有n個(gè)人,他們需要分配m元錢 (m >= n),每個(gè)人至少分到1元錢,且每個(gè)人分到的錢數(shù)必須是整數(shù)。請(qǐng)問(wèn)有多少種分配方案?
輸入描述:
輸入一行兩個(gè)正熬數(shù)n, m,用空格間隔。
輸出描述:
輸出分配方案數(shù)。
樣例1:
輸入:
5 ?10
輸出:
126
[超平老師解讀]:
本題考查的知識(shí)點(diǎn)是動(dòng)態(tài)規(guī)劃算法和二維列表的使用,當(dāng)然也可以使用遞歸算法來(lái)實(shí)現(xiàn),重點(diǎn)是動(dòng)態(tài)規(guī)劃算法的實(shí)現(xiàn)步驟。
具體的分析及實(shí)現(xiàn)請(qǐng)參考《使用動(dòng)態(tài)規(guī)劃解決分錢方案-2023年全國(guó)青少年信息素養(yǎng)大賽Python復(fù)賽真題精選》這篇文章。
第6題,錯(cuò)排問(wèn)題
題目描述:
圣誕節(jié)快到了,公司為每個(gè)員工都準(zhǔn)備了禮物,每個(gè)禮物都有一個(gè)精美的盒子。如果所有的禮物都不小心裝錯(cuò)了盒子,求所有禮物都裝錯(cuò)盒子共有多少種不同情況。
輸入描述:
輸入一個(gè)正整數(shù)n表示公司人數(shù),保證n ≤ 20。
輸出描述:
輸出一個(gè)整數(shù),代表有多少種情況。
樣例1:
輸入:
2
輸出:
1
[超平老師解讀]:
本題考查的是經(jīng)典的錯(cuò)排問(wèn)題,涉及到的知識(shí)點(diǎn)包括函數(shù)、遞歸算法、列表和動(dòng)態(tài)規(guī)劃算法,重點(diǎn)是動(dòng)態(tài)規(guī)劃算法。
具體的分析及實(shí)現(xiàn)請(qǐng)參考《使用動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)錯(cuò)排問(wèn)題-2023年全國(guó)青少年信息素養(yǎng)大賽Python復(fù)賽真題精選》這篇文章。
三.總結(jié)與思考
本次復(fù)賽一共6道編程題,題目由易到難,考查的知識(shí)點(diǎn)主要包括如下幾個(gè)方面:
-
輸入和輸出,重點(diǎn)是一行多個(gè)數(shù)字的輸入;
-
運(yùn)算符,重點(diǎn)是取模和取整運(yùn)算;
-
字符串處理及操作;
-
列表的操作及運(yùn)用,包括一維列表和二維列表;
-
遞歸算法;
-
動(dòng)態(tài)規(guī)劃算法;
這是初中組的復(fù)賽真題,總體來(lái)說(shuō),題目難度不小,尤其是最后兩題,都需要使用動(dòng)態(tài)規(guī)劃算法。
這就要求我們?cè)谄匠5膶W(xué)習(xí)過(guò)程中,要把重點(diǎn)放在算法上,算法是編程的核心,也是解決問(wèn)題的關(guān)鍵。
當(dāng)然,每一道題都有多種解法,也請(qǐng)你多思考一下,有沒(méi)有更好的思路和方法,歡迎和超平老師進(jìn)行交流。
如果你覺(jué)得文章對(duì)你有幫助,別忘了點(diǎn)贊和轉(zhuǎn)發(fā),予人玫瑰,手有余香??文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-645166.html
更多教程,請(qǐng)移步至“超平的編程課”gzh。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-645166.html
到了這里,關(guān)于第9屆Python編程挑戰(zhàn)賽北京賽區(qū)復(fù)賽真題剖析-2023年全國(guó)青少年信息素養(yǎng)大賽的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!