2023年藍橋杯本科B組 部分題解)及個人總

2021-10-17 09:56:09 字數 3629 閱讀 1273

啤酒每罐2.3元,飲料每罐1.9元。小明買了若干啤酒和飲料,一共花了82.3元。

我們還知道他買的啤酒比飲料的數量少,請你計算他買了幾罐啤酒。

注意:答案是乙個整數。請通過瀏覽器提交答案。

不要書寫任何多餘的內容-(例如:寫了飲料的數量,新增說明文字等)

思路的話就從1~50遍歷,如果(啤酒x2.3)+(飲料x1.9)=82.3就輸出

注意:啤酒《飲料

也就是:

for

(i=1

;i<

50;i++

)

但是啥也沒輸出

之後我將判斷改了一下

if

(2.3

*i+1.9

*j>

82.250000

&&2.3

*i+1.9

*j<

82.350000

&&i**:

#include

intmain()

}}return0;

}

答案:11

一根高筋拉麵,中間切一刀,可以得到2根麵條。

如果先對折1次,中間切一刀,可以得到3根麵條。

如果連續對折2次,中間切一刀,可以得到5根麵條。

那麼,連續對折10次,中間切一刀,會得到多少麵條呢?

答案是個整數,請通過瀏覽器提交答案。不要填寫任何多餘的內容。

思路:對折對折,肯定實在原來的基礎上進行變化,仔細觀察題目後就能發現其實後面這一次的等於前面一次的乘以2再減去1

**

#include

intmain()

,i; a[0]

=2,a[1]=

3,a[2]

=5;for

(i=2

;i<=

10;i++

) a[i]

=a[i-1]

*2-1

;printf

("%d"

,a[10])

;return0;

}

答案:1025

話說大詩人李白,一生好飲。幸好他從不開車。

一天,他提著酒壺,從家裡出來,酒壺中有酒2鬥。他邊走邊唱:

無事街上走,提壺去打酒。

逢店加一倍,遇花喝一斗。

這一路上,他一共遇到店5次,遇到花10次,已知最後一次遇到的是花,他正好把酒喝光了。

請你計算李白遇到店和花的次序,可以把遇店記為a,遇花記為b。則:babaabbabbabbbb 就是合理的次序。像這樣的答案一共有多少呢?請你計算出所有可能方案的個數(包含題目給出的)。

注意:通過瀏覽器提交答案。答案是個整數。不要書寫任何多餘的內容。

思路:要用到深搜,但我也還不太懂,,,,,,

**:

#include

int sum=0;

void

dfs(

int a,

int b,

int c)

intmain()

答案:14

速算(可跳過)

史豐收速演算法的革命性貢獻是:從高位算起,**進製。不需要九九表,徹底顛覆了傳統手算!

速算的核心基礎是:1位數乘以多位數的乘法。

其中,乘以7是最複雜的,就以它為例。

因為,1/7 是個迴圈小數:0.142857...,如果多位數超過 142857...,就要進1

同理,2/7, 3/7, ... 6/7 也都是類似的迴圈小數,多位數超過 n/7,就要進n

下面的程式模擬了史豐收速演算法中乘以7的運算過程。

乘以 7 的個位規律是:偶數乘以2,奇數乘以2再加5,都只取個位。

乘以 7 的進製規律是:

滿 142857... 進1,

滿 285714... 進2,

滿 428571... 進3,

滿 571428... 進4,

滿 714285... 進5,

滿 857142... 進6

請分析程式流程,填寫劃線部分缺少的**。

while

(r==0)

分析一下發現有r=0,r<0這兩種情況,那麼就是r>0的情況沒考慮,而且前面的if有返回值i+1,那麼填空部分可能是返回(i+?)

所以我大膽蒙乙個答案 猜測 :return i;對答案發現少了乙個判斷,太可惜了

答案:

if

(r>0)

return i;

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

1/4 乘以 8/5 

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

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

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

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

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

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

注意:答案是個整數(考慮對稱性,肯定是偶數)。請通過瀏覽器提交。不要書寫多餘的內容。

思路:其實這個題目和13年的馬虎的算式類似,可以通過暴力列舉實現,把a(第乙個數的分子),b(第乙個數的分母),c(第二個數的分子),d(第二個數的分母)可能的情況都列舉一次,如果滿足ac/bd=(ax10+c)/(bx10+d),可能的情況就加一。

也就是:

if((

(a*c*

1.0)

/(b*d*

1.0))==

(((a*10

+c)*

1.0)/(

(b*10

+d)*

1.0)))

sum++

;

注意:兩個數分子分母各不相同。

**:

#include

intmain()

}}}}

}printf

("%d"

,sum)

;return0;

}

答案:14

相比13年的題,感覺難度有增大,尤其是程式設計題目,同時也考察了例如深搜還未學習的東西,還是得抓緊向前學,向我玩失蹤大哥學習!!

2014藍橋杯本科B組 螞蟻感冒

問題描述 長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。請你計算,當所有螞蟻都爬離桿子時,有多少只...

2014藍橋杯決賽 本科B組 生物晶元

x博士正在研究一種生物晶元,其邏輯密集度 容量都遠遠高於普通的半導體晶元。博士在晶元中設計了 n 個微型光源,每個光源操作一次就會改變其狀態,即 點亮轉為關閉,或關閉轉為點亮。這些光源的編號從 1 到 n,開始的時候所有光源都是關閉的。博士計畫在晶元上執行如下動作 所有編號為2的倍數的光源操作一次,...

17年藍橋杯本科B組決賽 對局匹配

小明發現 的自動對局系統在匹配對手時,只會將積分差恰好是k 的兩名使用者匹配在一起。如果兩人分差小於或大於 k,系統都不會將他們匹配。現在小明知道這個 總共有n 名使用者,以及他們的積分分別是 a1,a2,an 任意兩名使用者積分差不等於 k 輸入第一行包含兩個個整數n和k 第二行包含n 個整數a1...