蓝桥杯 2015 javaB组 校赛
2015年藍橋杯校內賽 javaB組
第一題
/java中提供了對正則表達式的支持。
有的時候,恰當地使用正則,可以讓我們的工作事半功倍!
如下代碼用來檢驗一個四則運算式中數據項的數目,請填寫劃線部分缺少的代碼。
注意:只填寫缺少代碼,不要寫任何多余內容,例如,已有的雙引號。/
第二題
/1/1 + 1/2 + 1/3 + 1/4 + … 在數學上稱為調和級數。
它是發散的,也就是說,只要加上足夠多的項,就可以得到任意大的數字。
但是,它發散的很慢:
前1項和達到 1.0
前4項和才超過 2.0
前83項的和才超過 5.0
那么,請你計算一下,要加多少項,才能使得和達到或超過 15.0 呢?
請填寫這個整數。
注意:只需要填寫一個整數,不要填寫任何多余的內容。比如說明文字。/
答案:1835421
第三題
/*
如果x的x次冪結果為10(參見【圖1.png】),你能計算出x的近似值嗎?
顯然,這個值是介于2和3之間的一個數字。
請把x的值計算到小數后6位(四舍五入),并填寫這個小數值。
注意:只填寫一個小數,不要寫任何多余的符號或說明。*/
答案:2.506184
第四題
今有7對數字:兩個1,兩個2,兩個3,…兩個7,把它們排成一行。
要求,兩個1間有1個其它數字,兩個2間有2個其它數字,以此類推,兩個7之間有7個其它數字。如下就是一個符合要求的排列:
17126425374635
當然,如果把它倒過來,也是符合要求的。
請你找出另一種符合要求的排列法,并且這個排列法是以74開頭的。
注意:只填寫這個14位的整數,不能填寫任何多余的內容,比如說明注釋等。
第五題
/勾股定理,西方稱為畢達哥拉斯定理,它所對應的三角形現在稱為:直角三角形。
已知直角三角形的斜邊是某個整數,并且要求另外兩條邊也必須是整數。
求滿足這個條件的不同直角三角形的個數。
【數據格式】
輸入一個整數 n (0<n<10000000) 表示直角三角形斜邊的長度。
要求輸出一個整數,表示滿足條件的直角三角形個數。
例如,輸入:
5
程序應該輸出:
1
再例如,輸入:
100
程序應該輸出:
2
再例如,輸入:
3
程序應該輸出:
0
資源約定:
峰值內存消耗(含虛擬機) < 256M
CPU消耗 < 1000ms
請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入…” 的多余內容。/
第六題
package B;import java.util.Scanner;public class test5_6 {static char[][] s = new char[9][9];public static void main(String[] args) {Scanner sc = new Scanner(System.in);for (int i = 0; i < 9; i++) {String str = sc.nextLine();s[i] = str.toCharArray();//將字符串轉換成字符數組}s(0,0);}public static void s(int i,int j){if(i==9) {//匹配成功 輸;for (int m = 0;m < 9; m++) {for (int k = 0; k < 9; k++) {System.out.print(s[m][k]);}System.out.println();}return;}if(s[i][j]=='0'){//找到為0的進行賦值for (int k = 0; k < 9; k++) {boolean a = true;//標記行、列、同色九宮是否出現過 出現過為false 默認未出現過for (int t = 0; t < 9; t++) {//判斷行與列有沒有出現:(char)(k+l+'0')if(s[i][t]==(char) (k+1+'0')||s[t][j]==(char) (k+1+'0')) {//k+1+'0':這個1是1,2,3,4....中的1//System.out.println(1+2+'0');a = false;break;}}if(a)//行、列沒有出現:(char)(k+l+'0'),進行同色九宮的判斷for (int m = (i/3)*3; m < (i/3)*3+3; m++) {//判斷同色九宮是否出現:(char)(k+l+'0')for (int n = (j/3)*3; n < (j/3)*3+3; n++) {if(s[m][n]==(char) (k+1+'0')){a = false;break;}}}if(!a) continue;//判斷k+1+'0'出現過,則跳過這個循環,繼續進行k++的for循環,//若沒有出現過k+1+'0',則把這個值賦給s[i][j],繼續遞歸s[i][j] = (char) (k+1+'0');//賦值if(j==8){//遞歸賦值s(i+1,0);}else{s(i,j+1);//從第0行開始,從左到右,當j==8時,從下一行開始,從第0列開始,重復}s[i][j] = '0';//進行到后面的填空時,出現矛盾了,把前面上一個填過的空,回溯為零,再進行下一層r循環}}else{//不為’0’繼續找if(j==8){s(i+1,0);}else{s(i,j+1);}}} }第七題
/*G將軍有一支訓練有素的軍隊,這個軍隊除開G將軍外,每名士兵都有一個直接上級(可能是其他士兵,也可能是G將軍)。現在G將軍將接受一個特別的任務,需要派遣一部分士兵(至少一個)組成一個敢死隊,為了增加敢死隊隊員的獨立性,要求如果一名士兵在敢死隊中,他的直接上級不能在敢死隊中。
請問,G將軍有多少種派出敢死隊的方法。注意,G將軍也可以作為一個士兵進入敢死隊。
輸入格式
輸入的第一行包含一個整數n,表示包括G將軍在內的軍隊的人數。軍隊的士兵從1至n編號,G將軍編號為1。
接下來n-1個數,分別表示編號為2, 3, …, n的士兵的直接上級編號,編號i的士兵的直接上級的編號小于i。
輸出格式
輸出一個整數,表示派出敢死隊的方案數。由于數目可能很大,你只需要輸出這個數除10007的余數即可。
樣例輸入1
3
1 1
樣例輸出1
4
樣例說明
這四種方式分別是:
樣例輸入2
7
1 1 2 2 3 3
樣例輸出2
40*/
總結
以上是生活随笔為你收集整理的蓝桥杯 2015 javaB组 校赛的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 15 个常见的 Node.js 面试问题
- 下一篇: 题目 1035: [编程入门]自定义函数