2015年藍橋杯省賽JavaB組校內選拔整理

1.



java中提供了對正則表達式的支持。
有的時候,恰當地使用正則,可以讓我們的工作事半功倍!


如下代碼用來檢驗一個四則運算式中數據項的數目,請填寫劃線部分缺少的代碼。


注意:只填寫缺少代碼,不要寫任何多餘內容,例如,已有的雙引號。




public class A
{
public static int f(String s)
{
return s.split("________________").length;
}

public static void main(String[] args)
{
System.out.println(f("12+35*5-2*18/9-3")); //7
System.out.println(f("354*12+3-14/7*6")); //6
}

}

答案:[^0-9]

2.



1/1 + 1/2 + 1/3 + 1/4 + ... 在數學上稱爲調和級數。


它是發散的,也就是說,只要加上足夠多的項,就可以得到任意大的數字。


但是,它發散的很慢:


前1項和達到 1.0
前4項和才超過 2.0
前83項的和才超過 5.0

那麼,請你計算一下,要加多少項,才能使得和達到或超過 15.0 呢?


請填寫這個整數。


注意:只需要填寫一個整數,不要填寫任何多餘的內容。比如說明文字。


答案:1835421

3.



如果x的x次冪結果爲10(參見【圖1.png】),你能計算出x的近似值嗎?


顯然,這個值是介於2和3之間的一個數字。


請把x的值計算到小數後6位(四捨五入),並填寫這個小數值。


注意:只填寫一個小數,不要寫任何多餘的符號或說明。

2.506184

public class Test3 {


public static void main(String[] args) {
float sum=0;
for ( double i=2.500000; i < 2.550000; i=i+0.000001) {
Double d=Math.pow(i, i);
Double ddDouble=Math.abs(d-10.000000);
if(ddDouble<0.001)
System.out.println(i+" "+ddDouble);
}
System.out.println(sum);
}


}

根據打印的結果進行比較

答案:2.506184

4.

今有7對數字:兩個1,兩個2,兩個3,...兩個7,把它們排成一行。
要求,兩個1間有1個其它數字,兩個2間有2個其它數字,以此類推,兩個7之間有7個其它數字。如下就是一個符合要求的排列:


17126425374635


當然,如果把它倒過來,也是符合要求的。


請你找出另一種符合要求的排列法,並且這個排列法是以74開頭的。


注意:只填寫這個14位的整數,不能填寫任何多餘的內容,比如說明註釋等。

public class Test4 {

	   static int[] a = new int[] { 0, 7, 4, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0 };

	    public static void main(String[] args) {
	        getResult(1);//從數字1開始
	    }

	    /**
	     * 
	     * @param index
	     *             數1-7
	     */
	    public static void getResult(int index) {
	        if (index == 4) {//跳過數字4
	            index++;
	        }
	        if (index >= 7) {//此時說明1-7數字都被取完,輸出答案即可
	            for (int i = 1; i < a.length; i++) {
	                System.out.print(a[i]);
	            }
	        }
	        //i--->位數
	        for (int i = 3; i < 14; i++) {
	            if ((i + index + 1) <= 14 && a[i] == 0 && a[i + index + 1] == 0) {
	                a[i] = a[i + index + 1] = index;
	                getResult(index + 1);
	                //------------------------------
	                //執行到這一步說明此時的數字index不適合於位置i,撤回賦值
	                a[i] = a[i + index + 1] = 0;
	            }
	        }
	    }

	}
答案:74151643752362


5.

 
  勾股定理,西方稱爲畢達哥拉斯定理,它所對應的三角形現在稱爲:直角三角形。


  已知直角三角形的斜邊是某個整數,並且要求另外兩條邊也必須是整數。


  求滿足這個條件的不同直角三角形的個數。


【數據格式】
輸入一個整數 n (0<n<10000000) 表示直角三角形斜邊的長度。
要求輸出一個整數,表示滿足條件的直角三角形個數。


例如,輸入:
5
程序應該輸出:
1


再例如,輸入:
100
程序應該輸出:
2


再例如,輸入:
3
程序應該輸出:
0




資源約定:
峯值內存消耗(含虛擬機) < 256M
CPU消耗  < 1000ms




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


所有代碼放在同一個源文件中,調試通過後,拷貝提交該源碼。
注意:不要使用package語句。不要使用jdk1.7及以上版本的特性。

注意:主類的名字必須是:Main,否則按無效代碼處理。

 1 import java.util.Scanner;
 2 
 3 public class Main {
 4     public static long n;
 5     public static int result;
 6     
 7     public void getResult() {
 8         for(long i = 1;i < n;i++) {
 9             for(long j = n - i + 1;j < n;j++) {
10                 long temp = i * i + j * j;
11                 if(temp == n * n && j >= i)
12                     result++;
13             }
14         }
15         System.out.println(result);
16     }
17     
18     public static void main(String[] args) {
19         Main test = new Main();
20         Scanner in = new Scanner(System.in);
21         n = in.nextLong();
22         test.getResult();
23     }
24           
25 }

6.



你一定聽說過“數獨”遊戲。
如【圖1.png】,玩家需要根據9×9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行、每一列、每一個同色九宮內的數字均含1-9,不重複。


數獨的答案都是唯一的,所以,多個解也稱爲無解。


本圖的數字據說是芬蘭數學家花了3個月的時間設計出來的較難的題目。但對會使用計算機編程的你來說,恐怕易如反掌了。


本題的要求就是輸入數獨題目,程序輸出數獨的唯一解。我們保證所有已知數據的格式都是合法的,並且題目有唯一的解。


格式要求,輸入9行,每行9個字符,0代表未知,其它數字爲已知。
輸出9行,每行9個數字表示數獨的解。


例如:
輸入(即圖中題目):
005300000
800000020
070010500
400005300
010070006
003200080
060500009
004000030
000009700


程序應該輸出:
145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764


再例如,輸入:
800000000
003600000
070090200
050007000
000045700
000100030
001000068
008500010
090000400


程序應該輸出:
812753649
943682175
675491283
154237896
369845721
287169534
521974368
438526917
796318452




資源約定:
峯值內存消耗(含虛擬機) < 256M
CPU消耗  < 2000ms




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


所有代碼放在同一個源文件中,調試通過後,拷貝提交該源碼。
注意:不要使用package語句。不要使用jdk1.7及以上版本的特性。

注意:主類的名字必須是:Main,否則按無效代碼處理。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章