桂林理工大學第十屆java程序設計初試競賽試題
原創
三、程序設計題(不得改變已經給出的部分,允許添加新的輔助函數或類)(共36分)
(6分)1、以下函數的功能是判斷一個正整數是否為質數,若是返回true,否則返回false。其中參數data為要判斷的正整數。請給出其實現代碼。
public boolean isPrime(int data)
{
}
1 class Main{ 2 3 public boolean isPrime(int data){ 4 if(data==1 || data==2){ 5 return true; 6 } 7View Codefor(int i=2;i<=Math.sqrt(data);i++){ 8 if(data%i==0){ 9 return false; 10 } 11 } 12 return true; 13 } 14 } 15 16 public class Test { 17 18 public static void main(String[] args) { 19 Main test=new Main(); 20 for(int i=1;i<=20;i++){ 21 if(test.isPrime(i)==true){ 22 System.out.println(i+"是質數"); 23 }else{ 24 System.out.println(i+"是合數"); 25 } 26 } 27 } 28 29 }
(8分)2、以下函數的功能是判斷一個整數數組是否有序(升序或降序,允許相等),若是有序的返回true,否則返回false。其中參數data為要判斷的數組。請給出其實現代碼。
public boolean isSorted(int[] data)
{
}
(10分)3、以下函數的功能是尋找一個矩陣中的所有“奇點”,即返回每一行的“奇點”所在列的坐標,若某行不存在“奇點”則返回-1。其中參數data為要判斷的數組。所謂“奇點”是指該處的數值在它所處的行與列都是最大的。若每行存在多個“奇點”,僅取第一個(從左到右順序)。假設矩陣中的數據如下所示,則返回數組值為{3, 1, -1}(左邊),{1, 0, -1, 2}(右邊)。
1 |
4 |
9 |
17 |
2 |
16 |
8 |
13 |
2 |
3 |
4 |
8 |
11 |
16 |
5 |
23 |
16 |
8 |
2 |
9 |
4 |
4 |
8 |
12 |
public int[] singularity (int[][] data)
{
}
(12分)4、以下函數的功能是判斷矩陣中的兩個不同且不在邊界上的點是否匹配,若匹配則返回true,否則返回false。其中,其中參數data為要判斷的數組,i1與j1表示第一點的下標(從0開始計數),i2與j2表示第二點的下標。兩個點匹配應同時滿足如下條件:①兩個點所賦予的值相同,且不等於0;②能夠找到一條折線(最多包含三條水平或垂直的線段)將它們連接起來,而且這條折線所經過的點所賦予的值全部為0。假設矩陣中的數據如下所示,則點[1, 3]與[4, 2]是匹配的,點[1, 3]與[2, 2]是匹配的,而點[1, 4]與[3, 4]是不匹配的,點[3, 1]與[3, 4]也是不匹配的。
0 |
1 |
0 |
2 |
0 |
3 |
0 |
0 |
0 |
2 |
3 |
4 |
0 |
1 |
2 |
4 |
1 |
0 |
0 |
3 |
4 |
0 |
3 |
1 |
0 |
0 |
2 |
0 |
3 |
0 |
public boolean isMatch (int[][] data, int i1, int j1, int i2, int j2)
{
}
桂林理工大學第十屆java程序設計初試競賽試題