日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

2015蓝桥杯b组java_Java实现第十一届蓝桥杯JavaB组 省赛真题

發布時間:2025/3/15 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2015蓝桥杯b组java_Java实现第十一届蓝桥杯JavaB组 省赛真题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

試題 A: 指數計算

本題總分:5 分

【問題描述】

7 月1日是建黨日,從1921年到2020年, 已經帶領中國人民

走過了 99 年。

請計算:7 ^ 2020 mod 1921,其中A mod B表示A除以B的余數。

【答案提交】

這是一道結果填空題,你只需要算出結果后提交即可。本題的結果為一個

整數,在提交答案時只填寫這個整數,填寫多余的內容將無法得分。

package第十一屆藍橋杯;importjava.math.BigInteger;public classA指數計算 {public static voidmain(String[] args) {

BigInteger num1= new BigInteger("7");

BigInteger num2= new BigInteger("1921");

BigInteger num3=num1.pow(2020).remainder(num2);

System.out.println(num3);

}

}

試題 B: 解密

本題總分:5 分

【問題描述】

小明設計了一種文章加密的方法:對于每個字母 c,將它變成某個另外的

字符 Tc。下表給出了字符變換的規則:

字母c

Tc

字母c

Tc

字母c

Tc

字母c

Tc

a

y

n

l

A

Y

N

L

b

x

o

g

B

X

O

G

c

m

p

o

C

M

P

O

d

d

q

u

D

D

Q

U

e

a

r

f

E

A

R

F

f

c

s

s

F

C

S

S

g

i

t

z

G

I

T

Z

h

k

u

p

H

K

U

P

i

n

v

w

I

N

V

W

j

t

w

b

J

T

W

B

k

j

x

r

K

J

X

R

l

h

y

e

L

H

Y

E

m

q

z

v

M

Q

Z

V

例如,將字符串 YeRi 加密可得字符串EaFn。

小明有一個隨機的字符串,加密后為

EaFnjISplhFviDhwFbEjRjfIBBkRyY

(由 30 個大小寫英文字母組成,不包含換行符),請問原字符串是多少?

(如果你把以上字符串和表格復制到文本文件中,請務必檢查復制的內容

是否與文檔中的一致。在試題目錄下有一個文件 str.txt,第一行為上面的字符

串,后面 52 行依次為表格中的內容。)

【答案提交】

這是一道結果填空題,你只需要算出結果后提交即可。本題的結果為一個

只包含 30 個大小寫英文字母的字符串,在提交答案時只填寫這個字符串,填寫

多余的內容將無法得分。

package第十一屆藍橋杯;importjava.util.HashMap;importjava.util.Scanner;public classB解密 {public static voidmain(String[] args) {

HashMap map = new HashMap<>();

Scanner sc= newScanner(System.in);for (int i = 0;i<52;i++){char a = sc.next().trim().charAt(0);char b = sc.next().trim().charAt(0);

map.put(b,a);

}

String s=sc.next();

sc.close();char[] num =s.toCharArray();for (charc:num){

System.out.print(map.get(c));

}

}

}

輸入

a y n l A Y N L

b x o g B X O G

c m p o C M P O

d d q u D D Q U

e a r f E A R F

f c s s F C S S

g i t z G I T Z

h k u p H K U P

i n v w I N V W

j t w b J T W B

k j x r K J X R

l h y e L H Y E

m q z v M Q Z V

EaFnjISplhFviDhwFbEjRjfIBBkRyY

試題 C: 跑步訓練

本題總分:10 分

【問題描述】

小明要做一個跑步訓練。

初始時,小明充滿體力,體力值計為 10000。如果小明跑步,每分鐘損耗

600 的體力。如果小明休息,每分鐘增加300的體力。體力的損耗和增加都是

均勻變化的。

小明打算跑一分鐘、休息一分鐘、再跑一分鐘、再休息一分鐘……如此循

環。如果某個時刻小明的體力到達 0,他就停止鍛煉。

請問小明在多久后停止鍛煉。為了使答案為整數,請以秒為單位輸出答案。

答案中只填寫數,不填寫單位。

【答案提交】

這是一道結果填空題,你只需要算出結果后提交即可。本題的結果為一個

整數,在提交答案時只填寫這個整數,填寫多余的內容將無法得分。

package第十一屆藍橋杯;public classC跑步訓練 {public static voidmain(String[] args) {int target = 10000;int count = 0;boolean flag = true;while (true) {//如果小于600體力并且需要跑步,證明這一分鐘跑不完

if (target < 600 &&flag){break;

}if(flag) {

target-= 600;

flag= false;

}else{

target+= 300;

flag= true;

}

count++;

}//System.out.println(count);//最后要求秒數,一分鐘花費600體力,一秒花費10體力,體力除10就是剩下的跑步時間

int time = count * 60+target/10;

System.out.println(time);

}

}

試題 D: 合并檢測

本題總分:10 分

【問題描述】

最近存在A病,最近在 A 國蔓延,為了盡快控制病*,A國準

備給大量民眾進病*檢測。

然而,用于檢測的試劑盒緊缺。

為了解決這一困難,科學家想了一個辦法:合并檢測。即將從多個人(k

個)采集的標本放到同一個試劑盒中進行檢測。如果結果為陰性,則說明這 k

個人都是陰性,用一個試劑盒完成了 k 個人的檢測。如果結果為陽性,則說明

至少有一個人為陽性,需要將這 k 個人的樣本全部重新獨立檢測(從理論上看,

如果檢測前 k 1 個人都是陰性可以推斷出第k個人是陽性,但是在實際操作中

不會利用此推斷,而是將 k 個人獨立檢測),加上最開始的合并檢測,一共使用

了 k + 1 個試劑盒完成了k個人的檢測。

A 國估計被測的民眾的感染率大概是1%,呈均勻分布。請問k取多少能

最節省試劑盒?

【答案提交】

這是一道結果填空題,你只需要算出結果后提交即可。本題的結果為一個

整數,在提交答案時只填寫這個整數,填寫多余的內容將無法得分。

該解釋來自CSDN亓官劫,文末有其鏈接

試題 E: REPEAT 程序

本題總分:15 分

【問題描述】

附件 prog.txt 中是一個用某種語言寫的程序。

其中 REPEAT k 表示一個次數為k的循環。循環控制的范圍由縮進表達,

從次行開始連續的縮進比該行多的(前面的空白更長的)為循環包含的內容。

例如如下片段:

REPEAT 2:

A = A + 4

REPEAT 5:

REPEAT 6:

A = A + 5

A = A + 7

A = A + 8

A = A + 9

A = A + 4 所在的行到A = A + 8所在的行都在第一行的

循環兩次中。

REPEAT 6: 所在的行到A = A + 7所在的行都在REPEAT 5:循環中。

A = A + 5 實際總共的循環次數是2×5×6 = 60次。

請問該程序執行完畢之后,A 的值是多少?

【答案提交】

這是一道結果填空題,你只需要算出結果后提交即可。本題的結果為一個

整數,在提交答案時只填寫這個整數,填寫多余的內容將無法得分。

PS:

這個題我也不清楚對不對

package第十一屆藍橋杯;public classE_REPEAT程序 {public static voidmain(String[] args) {int A=0;for (int i=0;i<2;i++){

A+=4;for (int j=0;j<5;j++){for (int k=0;k<6;k++){

A+=5;

}

A+=7;

}

A+=8;

}

A+=9;

System.out.println(A);

}

}

試題 F: 分類計數

時間限制: 1.0s 內存限制: 512.0MB本題總分:15分

【問題描述】

輸入一個字符串,請輸出這個字符串包含多少個大寫字母,多少個小寫字

母,多少個數字。

【輸入格式】

輸入一行包含一個字符串。

【輸出格式】

輸出三行,每行一個整數,分別表示大寫字母、小寫字母和數字的個數。

【樣例輸入】

1+a=Aab

【樣例輸出】

1

3

1

【評測用例規模與約定】

對于所有評測用例,字符串由可見字符組成,長度不超過 100。

package第十一屆藍橋杯;importjava.util.Scanner;public classF分類計數 {public static voidmain(String[] args) {

Scanner sc= newScanner(System.in);

String s=sc.next();

sc.close();char[] num =s.toCharArray();int upp=0,low=0,nums=0;for (charc:num){if(Character.isUpperCase(c)){++upp;

}else if(Character.isLowerCase(c)){++low;

}else if(Character.isDigit(c)){++nums;

}

}

System.out.println(upp);

System.out.println(low);

System.out.println(nums);

}

}

試題 G: 整除序列

時間限制: 1.0s 內存限制: 512.0MB本題總分:20分

【問題描述】

有一個序列,序列的第一個數是 n,后面的每個數是前一個數整除2,請輸

出這個序列中值為正數的項。

【輸入格式】

輸入一行包含一個整數 n。

【輸出格式】

輸出一行,包含多個整數,相鄰的整數之間用一個空格分隔,表示答案。

【樣例輸入】

20

【樣例輸出】

20 10 5 2 1

【評測用例規模與約定】

對于 80% 的評測用例,1≤n≤109。

對于所有評測用例,1 ≤n≤1018。

package第十一屆藍橋杯;importjava.util.Scanner;public classG整除序列 {public static voidmain(String[] args) {

Scanner sc= newScanner(System.in);int n =sc.nextInt();

sc.close();while (n != 0) {

System.out.print(n+ " ");

n= n >> 1;//等價于/2,位運算相對快一些

}

}

}

試題 H: 走方格

時間限制: 1.0s 內存限制: 512.0MB本題總分:20分

【問題描述】

在平面上有一些二維的點陣。

這些點的編號就像二維數組的編號一樣,從上到下依次為第 1 至第n行,

從左到右依次為第 1 至第m列,每一個點可以用行號和列號來表示。

現在有個人站在第 1 行第1列,要走到第n行第m列。只能向右或者向下

走。

注意,如果行號和列數都是偶數,不能走入這一格中。

問有多少種方案。

【輸入格式】

輸入一行包含兩個整數 n, m。

【輸出格式】

輸出一個整數,表示答案。

【樣例輸入】

3 4

【樣例輸出】

2

【樣例輸入】

6 6

【樣例輸出】

0

【評測用例規模與約定】

對于所有評測用例,1 ≤n≤30, 1≤m≤30。

package第十一屆藍橋杯;importjava.util.Scanner;public classH走方格 {public static voidmain(String[] args) {//輸入矩陣的寬高

Scanner sc = newScanner(System.in);int n =sc.nextInt();int m =sc.nextInt();

sc.close();int[][] dp = new int[n][m];

dp[0][0]=1;//這個規律是只能往右下走,也就是只能取左上的值

for (int i=0;i

if(i==0 && j==0){continue;

}//只要不是第一行就可以取上面的

if(i>0){

dp[i][j]+=dp[i-1][j];

}//只要不是第一列就可以取左面的

if(j>0){

dp[i][j]+=dp[i][j-1];

}//如果是偶數行列不能取值,這里是奇數,因為我的是從0開始,所以偶數的就變成了奇數

if((i&1)==1 && (j&1)==1){

dp[i][j]=0;

}

}

}

System.out.println(dp[n-1][m-1]);

}

}

試題 I: 字符串編碼

時間限制: 1.0s 內存限制: 512.0MB本題總分:25分

【問題描述】

小明發明了一種給由全大寫字母組成的字符串編碼的方法。對于每一個大

寫字母,小明將它轉換成它在 26 個英文字母中序號,即A→1, B→2,…Z→

26。

這樣一個字符串就能被轉化成一個數字序列:

比如 ABCXYZ →123242526。

現在給定一個轉換后的數字序列,小明想還原出原本的字符串。當然這樣

的還原有可能存在多個符合條件的字符串。小明希望找出其中字典序最大的字

符串。

【輸入格式】

一個數字序列。

【輸出格式】

一個只包含大寫字母的字符串,代表答案

【樣例輸入】

123242526

【樣例輸出】

LCXYZ

【評測用例規模與約定】

對于 20% 的評測用例,輸入的長度不超過20。

對于所有評測用例,輸入的長度不超過 200000。

PS:

這個題我寫復雜了,但是篩選條件就是這些,某些取反的情況可以少些很多if

package第十一屆藍橋杯;importjava.util.Scanner;public classI字符串編碼 {public static voidmain(String[] args) {

Scanner sc= newScanner(System.in);

String s=sc.next();

sc.close();

StringBuilder sb= newStringBuilder();int len =s.length();char[] num =s.toCharArray();for (int i = 0; i < len; i++) {//1開頭

if (num[i] == '1') {//第i+2位是否為0,如果為0,當前位就不能和i+1位合并成一個字母

if (i < len - 2) {//不為0

if (num[i + 2] != '0') {//System.out.println((num[i]-'0') * 10 + num[i + 1] + 'A' -1 -'0' );

sb.append((char) ((num[i] - '0') * 10 + num[i + 1] + 'A' - 1 - '0'));++i;//為0,當前位就不能和i+1位合并成一個字母,(如果合成字母,剩下一個0沒辦法轉換)

} else{

sb.append((char) (num[i] - '0' + 'A' - 1));

}//i+2已超過盡頭

} else{//看i+1位是否存在

if (i < len - 1) {

sb.append((char) ((num[i] - '0') * 10 + num[i + 1] + 'A' - 1 - '0'));//不存在,第i位為最后一位

} else{

sb.append((char) (num[i] - '0' + 'A' - 1));

}break;

}//2開頭

} else if (num[i] == '2') {//看存不存在下一位

if (i < len - 1) {//看下一位是不是小于6,因為字母的大小不能超過26

if (num[i + 1] <= '6') {//看第i+2位是否存在

if (i < len - 2) {//看第i+2位是否=0

if (num[i + 2] != '0') {

sb.append((char) ((num[i] - '0') * 10 + num[i + 1] + 'A' - 1 - '0'));++i;//為0,當前位就不能和i+1位合并成一個字母,(如果合成字母,剩下一個0沒辦法轉換)

} else{

sb.append((char) (num[i] - '0' + 'A' - 1));

}//不存在的話,就直接添加就行

} else{

sb.append((char) ((num[i] - '0') * 10 + num[i + 1] + 'A' - 1 - '0'));break;

}//如果大于6,證明不能和后一位合并

} else{

sb.append((char) (num[i] - '0' + 'A' - 1));

}//不存在下一位,這一位就直接放進去

} else{

sb.append((char) (num[i] - '0' + 'A' - 1));

}//如果大于2的話,就直接添加就行,字母沒有2以上開頭的

} else{

sb.append((char) (num[i] - '0' + 'A' - 1));

}

}

System.out.println(sb.toString());

}public static char getUppLetter(intnum) {

System.out.println((char) (num));return (char) (num);

}

}

試題 J: 整數小拼接

時間限制: 1.0s 內存限制: 512.0MB本題總分:25分

【問題描述】

給定義個長度為 n 的數組A1, A2,· · ·, An。你可以從中選出兩個數Ai和Aj (i不等于j),然后將Ai和Aj一前一后拼成一個新的整數。例如12和345可

以拼成 12345 或34512。注意交換Ai和Aj的順序總是被視為2種拼法,即便

是 Ai = Aj 時。

請你計算有多少種拼法滿足拼出的整數小于等于 K。

【輸入格式】

第一行包含 2 個整數n和K。

第二行包含 n 個整數A1, A2,· · ·, An。

【輸出格式】

一個整數代表答案。

【樣例輸入】

4 33

1 2 3 4

【樣例輸出】

8

【評測用例規模與約定】

對于 30% 的評測用例,1≤N≤1000, 1≤K≤108, 1≤Ai≤104。

對于所有評測用例,1 ≤N≤100000,1≤K≤1010,1≤Ai≤109。

此題等有時間在寫寫吧

總結

以上是生活随笔為你收集整理的2015蓝桥杯b组java_Java实现第十一届蓝桥杯JavaB组 省赛真题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。