1. 程式人生 > 其它 >【藍橋杯省賽JavaB組真題詳解】第五屆藍橋杯省賽真題詳解(2014)

【藍橋杯省賽JavaB組真題詳解】第五屆藍橋杯省賽真題詳解(2014)

技術標籤:藍橋杯JavaB組真題詳解java演算法資料結構c++c語言

第一題:武功祕籍

題目描述
小明到X山洞探險,撿到一本有破損的武功祕籍(2000多頁!當然是偽造的)。
他注意到:書的第10頁和第11頁在同一張紙上,但第11頁和第12頁不在同一張紙上。
小明只想練習該書的第81頁到第92頁的武功,又不想帶著整本書。請問他至少要撕下多少張紙帶走?
這是個整數,請通過瀏覽器提交該數字,不要填寫任何多餘的內容。
答案解析
點選檢視詳解(【藍橋杯JavaB組真題詳解】武功祕籍(2014))

第二題:切面條

題目描述
一根高筋拉麵,中間切一刀,可以得到2根麵條。
如果先對摺1次,中間切一刀,可以得到3根麵條。

如果連續對摺2次,中間切一刀,可以得到5根麵條。
那麼,連續對摺10次,中間切一刀,會得到多少麵條呢?

答案是個整數,請通過瀏覽器提交答案。不要填寫任何多餘的內容。
答案解析
點選檢視詳解(【藍橋杯JavaB組真題詳解】切面條(2014))

第三題:猜字母

題目描述
把abcd…s共19個字母組成的序列重複拼接106次,得到長度為2014的串。

接下來刪除第1個字母(即開頭的字母a),以及第3個,第5個等所有奇數位置的字母。

得到的新串再進行刪除奇數位置字母的動作。如此下去,最後只剩下一個字母,請寫出該字母。

答案是一個小寫字母,請通過瀏覽器提交答案。不要填寫任何多餘的內容。
答案解析
歡迎關注博主,題解待更新

第四題:大衍數列

題目描述
中國古代文獻中,曾記載過“大衍數列”, 主要用於解釋中國傳統文化中的太極衍生原理。

它的前幾項是:0、2、4、8、12、18、24、32、40、50 …

其規律是:對偶數項,是序號平方再除2,奇數項,是序號平方減1再除2。

以下的程式碼打印出了大衍數列的前 100 項。

for(int i=1; i<100; i++)
{
    if(________________)  //填空
        System.out.println(i*i/2);
    else
        System.out.println((i*i-1)/2);
}

請填寫劃線部分缺失的程式碼。通過瀏覽器提交答案。

注意:不要填寫題面已有的內容,也不要填寫任何說明、解釋文字。

答案解析
點選檢視詳解(【藍橋杯JavaB組真題詳解】大衍數列(2014))

第五題:圓周率

題目描述
數學發展歷史上,圓周率的計算曾有許多有趣甚至是**的故事。其中許多方法都涉及無窮級數。

圖1.png中所示,就是一種用連分數的形式表示的圓周率求法。

下面的程式實現了該求解方法。實際上數列的收斂對x的初始值 並不敏感。

結果打印出圓周率近似值(保留小數點後4位,並不一定與圓周率真值吻合)。

    double x = 111; 
    for(int n = 10000; n>=0; n--){
        int i = 2 * n + 1;
        x = 2 + (i*i / x);
    }
    
    System.out.println(String.format("%.4f", ______________));

p1
答案解析
點選檢視詳解(【藍橋杯JavaB組真題詳解】圓周率(2014))

第六題:奇怪的分式

題目描述
上小學的時候,小明經常自己發明新演算法。一次,老師出的題目是:

1/4 乘以 8/5

小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (參見下圖)

老師剛想批評他,轉念一想,這個答案湊巧也對啊,真是見鬼!

對於分子、分母都是 1~9 中的一位數的情況,還有哪些算式可以這樣計算呢?

請寫出所有不同算式的個數(包括題中舉例的)。

顯然,交換分子分母后,例如:4/1 乘以 5/8 是滿足要求的,這算做不同的算式。

但對於分子分母相同的情況,2/2 乘以 3/3 這樣的型別太多了,不在計數之列!

答案解析
點選檢視詳解(【藍橋杯JavaB組真題詳解】奇怪的分式(2014))

第七題:撲克序列

題目描述
A A 2 2 3 3 4 4, 一共 4 對撲克牌。請你把它們排成一行。

要求:兩個 A 中間有 1 張牌,兩個 2 之間有 2 張牌,兩個 3 之間有 3 張牌,兩個 4 之間有 4 張牌。

請填寫出所有符合要求的排列中,字典序最小的那個。

例如:22AA3344 比 A2A23344 字典序小。當然,它們都不是滿足要求的答案。·
答案解析
點選檢視詳解(【藍橋杯JavaB組真題詳解】撲克序列(2014))

第八題:分糖果

題目描述
有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲:

每個小朋友都把自己的糖果分一半給左手邊的孩子。

一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。

反覆進行這個遊戲,直到所有小朋友的糖果數都相同為止。

你的任務是預測在已知的初始糖果情形下,老師一共需要補發多少個糖果。

【格式要求】

程式首先讀入一個整數N(2<N<100),表示小朋友的人數。
接著是一行用空格分開的N個偶數(每個偶數不大於1000,不小於2)
要求程式輸出一個整數,表示老師需要補發的糖果數。

例如:輸入
3
2 2 4
程式應該輸出:
4

資源約定:
峰值記憶體消耗(含虛擬機器) < 256M
CPU消耗 < 1000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:“請您輸入…” 的多餘內容。

所有程式碼放在同一個原始檔中,除錯通過後,拷貝提交該原始碼。
注意:不要使用package語句。不要使用jdk1.7及以上版本的特性。
注意:主類的名字必須是:Main,否則按無效程式碼處理。
答案解析
歡迎關注博主,題解待更新

第九題:地宮取寶

題目描述
X 國王有一個地宮寶庫。是 n x m 個格子的矩陣。每個格子放一件寶貝。每個寶貝貼著價值標籤。

地宮的入口在左上角,出口在右下角。

小明被帶到地宮的入口,國王要求他只能向右或向下行走。

走過某個格子時,如果那個格子中的寶貝價值比小明手中任意寶貝價值都大,小明就可以拿起它(當然,也可以不拿)。

當小明走到出口時,如果他手中的寶貝恰好是k件,則這些寶貝就可以送給小明。

請你幫小明算一算,在給定的局面下,他有多少種不同的行動方案能獲得這k件寶貝。

【資料格式】

輸入一行3個整數,用空格分開:n m k (1<=n,m<=50, 1<=k<=12)

接下來有 n 行資料,每行有 m 個整數 Ci (0<=Ci<=12)代表這個格子上的寶物的價值

要求輸出一個整數,表示正好取k個寶貝的行動方案數。該數字可能很大,輸出它對 1000000007 取模的結果。

例如,輸入:
2 2 2
1 2
2 1
程式應該輸出:
2

再例如,輸入:
2 3 2
1 2 3
2 1 5
程式應該輸出:
14

資源約定:
峰值記憶體消耗(含虛擬機器) < 256M
CPU消耗 < 2000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:“請您輸入…” 的多餘內容。

所有程式碼放在同一個原始檔中,除錯通過後,拷貝提交該原始碼。
注意:不要使用package語句。不要使用jdk1.7及以上版本的特性。
注意:主類的名字必須是:Main,否則按無效程式碼處理。
答案解析
歡迎關注博主,題解待更新

第十題:矩陣翻硬幣

題目描述
小明先把硬幣擺成了一個 n 行 m 列的矩陣。

隨後,小明對每一個硬幣分別進行一次 Q 操作。

對第x行第y列的硬幣進行 Q 操作的定義:將所有第 i*x 行,第 j*y 列的硬幣進行翻轉。

其中i和j為任意使操作可行的正整數,行號和列號都是從1開始。

當小明對所有硬幣都進行了一次 Q 操作後,他發現了一個奇蹟——所有硬幣均為正面朝上。

小明想知道最開始有多少枚硬幣是反面朝上的。於是,他向他的好朋友小M尋求幫助。

聰明的小M告訴小明,只需要對所有硬幣再進行一次Q操作,即可恢復到最開始的狀態。然而小明很懶,不願意照做。於是小明希望你給出他更好的方法。幫他計算出答案。

【資料格式】
輸入資料包含一行,兩個正整數 n m,含義見題目描述。
輸出一個正整數,表示最開始有多少枚硬幣是反面朝上的。

【樣例輸入】
2 3

【樣例輸出】
1

【資料規模】
對於10%的資料,n、m <= 10^3;
對於20%的資料,n、m <= 10^7;
對於40%的資料,n、m <= 10^15;
對於100%的資料,n、m <= 10^1000(10的1000次方)。

資源約定:
峰值記憶體消耗(含虛擬機器) < 256M
CPU消耗 < 2000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:“請您輸入…” 的多餘內容。

所有程式碼放在同一個原始檔中,除錯通過後,拷貝提交該原始碼。
注意:不要使用package語句。不要使用jdk1.7及以上版本的特性。
注意:主類的名字必須是:Main,否則按無效程式碼處理。
答案解析
歡迎關注博主,題解待更新