2017藍橋杯寒假訓練計畫(一)1 18

2021-07-26 06:55:06 字數 3096 閱讀 1329

**填空題:

1.報數遊戲

vector a = new vector();

for(int i=1; i<=10; i++)

for(;;)

system.out.println(a);

答案:

a.add(a.remove(0));

思路:

vector其實不是很懂,但是憑其他**可以看出add和remove的作用,在第三個for迴圈中填寫a.add(a.remove(0));實際上是將沒有報三的孩子新增到vector容器的尾部,即k=0,k=1時。該迴圈外的a.remove(0)則是將報三的孩子移除容器。

2.不連續處斷開

下列**執行結果為:

12345

23456

8923456789

即把乙個串從數字不連續的位置斷開。試完善之。

string s = "12345234568923456789";

string t = "1";

for(int i=1; i

答案:

t = "" + s.charat(i)

思路:

如果是連續的數字就執行if中的語句,如果不連續,執行else中的語句,先輸出t,再將t清空並加上當前位置的數字。

3.猜數字遊戲

很多人都玩過這個遊戲:甲在心中想好乙個數字,乙來猜。每猜乙個數字,甲必須告訴他是猜大了,猜小了,還是剛好猜中了。下列的**模擬了這個過程。其中使用者充當甲的角色,計算機充當乙的角色。為了能更快地猜中,計算機使用了二分法。

閱讀分析**,填寫缺失的部分。

把填空的答案(僅填空處的答案,不包括題面)存入考生資料夾下對應題號的「解答.txt」中即可。

system.out.println("請在心中想好乙個數字(1~100),我來猜");

system.out.println("我每猜乙個數字,你要告訴我是「猜大了」,「猜小了」,還是「猜中」");

scanner scan = new scanner(system.in);

int v1 = 1;

int v2 = 100;

for(;;)

答案:

v2 = m-1    

v1 = m+1

思路:

當心中的數比m小時,即猜的太大時,只需在v1和m-1中繼續找即可,反之則在m+1和v2中找。

4.反轉串

我們把「cba」稱為「abc」的反轉串。

求乙個串的反轉串的方法很多。下面就是其中的一種方法,**十分簡潔(甚至有些神秘),請聰明的你通過給出的一點點線索補充缺少的**。

把填空的答案(僅填空處的答案,不包括題面)存入考生檔案下對應題號的「解答.txt」中即可。

public static string reversestring(string x)

答案:

reversestring(x.substring(1))

思路:

通過遞迴將首字母放到尾字母後面即可

5.串中找數字

以下的靜態方法實現了:把串s中第乙個出現的數字的值返回。

如果找不到數字,返回-1

例如:s = "abc24us43"  則返回2

s = "82445adb5"  則返回8

s = "ab"   則返回-1  

public static int getfirstnum(string s)

答案:

c-'0'

getfirstnum(s.substring(1))

思路:

題目簡單,但是切記將char c所代表的數字轉換成實際意義的數字,即減去『0『或48。。。我在初做的時候忘記了,結果出來了個50有點懵,後來才發現錯誤。

結果填空題:

空瓶換汽水

浪費可恥,節約光榮。飲料店節日搞活動:不用付費,用3個某飲料的空瓶就可以換一瓶該飲料。剛好小明前兩天買了

2瓶該飲料喝完了,瓶子還在。他耍了個小聰明,向老闆借了乙個空瓶,湊成

3個,換了一瓶該飲料,喝完還瓶!!

飲料店老闆一統計,已經售出該飲料且未還瓶的有12345瓶,那麼如果這些飲料的買主都如小明一樣聰明,老闆最多還需要送出多少瓶飲料呢?

顯然答案是個正整數。

參***:

6172

思路:12345/2≈6172,即最大數。

2.三人年齡

三個神秘蒙面人來訪f博士。

博士詢問他們年齡時,他們說:我們中年齡最小的不超過19歲。我們

3人年齡總和為

70歲。且我們三人年齡的乘積是所有可能情況中最大的。

請幫助f博士計算他們的年齡,從小到大排列,用逗號分開。

參***:

19,25,26

思路:填空題用三重for迴圈暴力破解即可,判斷條件是i,j,k總和為70。且如果i*j*k>sum,則將sum替換成i*j*k(sum初始化為0)。

3.考察團組成

某飯店招待國外考察團。按照標準,對領導是400元

/人,隨團職員

200元

/人,對司機50元

/人。考察團共36人,招待費結算為

3600

元,請問領導、職員、司機各幾人。

答案是三個整數,用逗號分隔。

參***:

3,5,28

思路:

同樣是多重迴圈暴力破解即可。 



藍橋杯寒假訓練 1

一年一度的植樹節就要到了,計算機學院學生準備在學院教學樓門前的空地上種植樹木。為使樹木排列得更加美觀,大家決定把樹木排列成菱形。現在告訴你我們所擁有的樹木能排列成邊長為 nn 的菱形,請你程式設計輸出樹木所排列的圖案 用 號代表樹木 input 乙個整數 nn 1 n 10 1 n 10 outpu...

藍橋杯訓練day1

快速冪 題目描述 給定a,b,p,求 a b mod p。輸入輸入共一行。第一行有三個數,n,m,p。輸出輸出共一行,表示所求。共10組資料 對100 的資料,a,b為long long範圍內的非負整數,p為int內的非負整數。樣例輸入 2 5 3樣例輸出 21 初始的時候可以令res 1 2 判斷...

藍橋杯(一)入門訓練

時間限制 1.0s 記憶體限制 256.0mb 求1 2 3 n的值。輸入包括乙個整數n。輸出一行,包括乙個整數,表示1 2 3 n的值。說明 有一些試題會給出多組樣例輸入輸出以幫助你更好的做題。一般在提交之前所有這些樣例都需要測試通過才行,但這不代表這幾組樣例資料都正確了你的程式就是完全正確的,潛...