Java_上机2

编程题目

  • 注意
    1. 下面代码块直接复制粘贴应该就可以通过
    2. 如果显示的是没有通过(如:unknown erro,wrong erro….)建议在评判界面等10秒左右,因为系统判定会有延迟。
    3. 如果对于改题您有更好的解决方式,欢迎联系本人

1.二分查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.util.Arrays;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner data = new Scanner(System.in);
String dataStr;
String []str;
int flag = 0;
int fdnum;//存储需要查找的数
boolean isFind = false;
while (data.hasNextLine()) {
dataStr = data.nextLine();
str = dataStr.split(" ");
int [] num = new int[Integer.parseInt(str[0])+3];
for (int i = 0; i <= Integer.parseInt(str[0])+1; i++) {
num[i] = Integer.parseInt(str[i]);
}
fdnum = num[num[0]+1];
int low = 1;
int high = num[0];
int mid;
while (low <= high) {
mid = low + (high - low) / 2;
if (num[mid] == fdnum) {
System.out.println(mid-1);
isFind = true;
break;
} else if (num[mid] > fdnum) {
high = mid-1;
} else {
low = mid+1;
}

}
if (!isFind) {
System.out.println("no");
isFind = false;
}
}
}

}

2.数组中找最大值和最小值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dataStr;
double []doubleData = new double[100];
double maxDouble;
double minDouble;
while (scanner.hasNextLine()) {
String []str;
dataStr = scanner.nextLine();
str = dataStr.split(" ");
for (int i = 0; i < str.length; i++) {
doubleData[i] = Double.parseDouble(str[i]);
}
maxDouble = doubleData[0];
minDouble = doubleData[0];
for (int i = 0; i < str.length; i++) {
if (maxDouble < doubleData[i]){
maxDouble = doubleData[i];
}
if (minDouble > doubleData[i]){
minDouble = doubleData[i];
}
}
System.out.println(maxDouble);
System.out.println(minDouble);
}

}

}

3.统计元音

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String []dataStr = new String[101];
int []doubleData = new int[5];
while (scanner.hasNextLine()) {
String data;
data = scanner.nextLine();
for (int i = 0; i < data.length(); i++) {
dataStr[i] = String.valueOf(data.charAt(i));
switch (data.charAt(i)){
case 'a':
doubleData[0]++;
break;
case 'e':
doubleData[1]++;
break;
case 'i':
doubleData[2]++;
break;
case 'o':
doubleData[3]++;
break;
case 'u':
doubleData[4]++;
break;
}
}
System.out.println("a:"+doubleData[0]);
System.out.println("e:"+doubleData[1]);
System.out.println("i:"+doubleData[2]);
System.out.println("o:"+doubleData[3]);
System.out.println("u:"+doubleData[4]);
}
}
}

4.快速排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dataStr;
int[] DataNum = new int[100];
while (scanner.hasNextLine()) {
dataStr = scanner.nextLine();
String[] data = dataStr.split(" ");
for (int i = 0; i < data.length; i++) {
DataNum[i] = Integer.parseInt(data[i]);
} //到目前为止,所有的值都被放到了数组DataNum里面了

DataNum = quickSort(DataNum, 1, data.length - 1);
for (int i = 1; i < data.length; i++) {
System.out.print(DataNum[i] + " ");
}
}


}

public static int[] quickSort(int[] data, int start, int end) {
int head = start;
int tail = end;
while (head < tail) {
while (head < tail) {
if (data[start] <= data[tail]) {
tail--;
} else {
break;
}
}
while (head < tail) {
if (data[start] >= data[head]) {
head++;
} else {
break;
}
}
if (head < tail) {
int temp;
temp = data[head];
data[head] = data[tail];
data[tail] = temp;
} else if (head == tail) {
int temp;
temp = data[head];
data[head] = data[start];
data[start] = temp;
data = quickSort(data, start, head - 1);
data = quickSort(data, head + 1, end);
break;

} else {
System.out.println("发生错误");
}
}
return data;
}
}

5.说反话

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dataStr;
while (scanner.hasNextLine()) {
dataStr = scanner.nextLine();
String[] data = dataStr.split(" ");
for (int i = data.length - 1; i >= 0; i--) {
System.out.print(data[i]+" ");
}
}
}
}

代码若存在问题请及时联系我进行修改