2019Java编程题试题及答案
答案如有不当之处,欢迎指正
1.
package cn.xaut.imitate2;
import java.util.Scanner;
public class demo1 {
static int cubeNum(int n) {
int num = 0;
for (int i = 1; i <= n; i++) {
if (Math.pow(i, 3) <= n) {
num ++;
} else
break;
}
return num;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
System.out.println(cubeNum(n));
}
}
2.
package cn.xaut.imitate2;
import java.util.Scanner;
public class demo2 {
static boolean isPrime(int n) { // 是否为素数
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0)
return false;
}
return true;
}
// 返回[n, m]中非偶数的合数个数
static int non_even_composite_number(int n, int m) {
int num = 0;
for (int i = n; i <= m; i++) {
if (i % 2 != 0 && !isPrime(i))
num ++;
}
return num;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int m = input.nextInt();
System.out.println(non_even_composite_number(n, m));
}
}
3.
package cn.xaut.imitate2;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class demo3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String s = input.nextLine();
List<Character> list = new ArrayList<>();
for (char c : s.toCharArray())
list.add(c);
for (int i = 1; i < list.size(); i++) {
if (list.get(i - 1) == list.get(i)) {
list.remove(i - 1);
list.remove(i - 1);
i -= 2;
}
}
if (list.size() == 0) {
System.out.println("YES");
return;
}
for (char c : list)
System.out.print(c);
System.out.println();
}
}
4.
package cn.xaut.imitate2;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class demo4 {
// 获取集合中的最大值
static int getMax(List<Integer> list) {
int max = list.get(0);
for (int i = 1; i < list.size(); i++) {
if (list.get(i) > max)
max = list.get(i);
}
return max;
}
// 获取几何中的最小值
static int getMin(List<Integer> list) {
int min = list.get(0);
for (int i = 1; i < list.size(); i++) {
if (list.get(i) < min)
min = list.get(i);
}
return min;
}
// 获取小区间中任意两个数的差值的最大值
static int getMaxDiff(List<Integer> smallList) {
int max = getMax(smallList);
int min = getMin(smallList);
return (max - min);
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int k = input.nextInt();
List<Integer> list = new ArrayList<>(); // list保存数组中的元素
List<Integer> res = new ArrayList<>(); // res存放每个区间的最大Dk值
for (int i = 0; i < n; i++)
list.add(input.nextInt());
for (int i = 0; i < n; i += k) {
// smallList为连续k个元素构成的小区间
List<Integer> smallList = new ArrayList<>();
for (int j = 0; j < k; j++)
smallList.add(list.get(i + j));
res.add(getMaxDiff(smallList));
}
System.out.println(getMax(res));
}
}
5.
package cn.xaut.imitate2;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class demo5 {
// 获取集合中每个元素的和
static int sum(List<Integer> list) {
int res = 0;
for (int a : list)
res += a;
return res;
}
// 1.将带“*”的字符串分割为带“+”号的字符串
// 2.从带“+”号的字符串中获取它们的和
static int getSumFromString(String s) {
List<Integer> list = new ArrayList<>();
String [] strings = s.split("[+]");
for (String ss : strings)
list.add(Integer.valueOf(ss));
return sum(list);
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String s = input.nextLine();
String [] strings = s.split("[*]"); // 将原字符串分割为带“+”号的字符串
int res = 1;
for (String ss : strings)
res *= getSumFromString(ss);
System.out.println(res);
}
}