求助关于Java题目。 小题有点多就给100分吧。 感谢。。
先把题目翻译一下吧,大概是:
1、找出最大值和最小值。
2、相邻的数求和。
3、找出相邻的重复的值。
Scanner input = new Scanner(System.in);
System.out.println("第一题");
System.out.print("输入:");
String s = input.nextLine();
if (null != s && s.length() > 0) {
String[] arr = s.split(" ");
int max = 0;
int min = 0;
for (int i = 0; i < arr.length; i++) {
if (i == 0) {
max = Integer.parseInt(arr[0]);
min = Integer.parseInt(arr[0]);
} else {
int num = Integer.parseInt(arr[i]);
if (num > max) {
max = num;
}
if (num < min) {
min = num;
}
}
}
System.out.println("最大值是:" + max + ", 最小值是:" + min);
} else {
System.err.println("没有输入数组!");
}
System.out.println("第二题");
System.out.print("输入:");
s = input.nextLine();
if (null != s && s.length() > 0) {
String[] arr = s.split(" ");
StringBuffer result = new StringBuffer();
if (arr.length < 2) {
System.err.println("至少两个数字!");
} else {
for (int i = 1; i < arr.length; i++) {
int a = Integer.parseInt(arr[i - 1]);
int b = Integer.parseInt(arr[i]);
result.append(" " + (a + b));
}
System.out.println("第二题结果为:" + result.toString());
}
} else {
System.err.println("没有输入数组!");
}
System.out.println("第三题");
System.out.print("输入:");
s = input.nextLine();
if (null != s && s.length() > 0) {
String[] arr = s.split(" ");
HashSet set = new HashSet();
if (arr.length < 2) {
System.err.println("至少两个数字!");
} else {
for (int i = 1; i < arr.length; i++) {
int a = Integer.parseInt(arr[i - 1]);
int b = Integer.parseInt(arr[i]);
if (a == b) {
set.add(b);
}
}
System.out.print("第三题结果为:");
Iterator it = set.iterator();
while (it.hasNext()) {
Object o = it.next();
System.out.print(o + " ");
}
}
} else {
System.err.println("没有输入数组!");
}
第二题好像还要加个一个首项
对,是少了一个。
在StringBuffer result = new StringBuffer();这一行后面,再加一行:
result.append(arr[0]);
// 1输出最大最小值
IntSummaryStatistics iss = input.stream().mapToInt(e -> e).summaryStatistics();
System.out.println("最小值:" + iss.getMin() + ",最大值:" + iss.getMax());
// 2输出累加数
System.out.print("累加数:");
input.stream().reduce((a, b) -> {
System.out.print(a + b + " ");
return a + b;
});
System.out.println();
// 3输出相邻重复数
List<Integer> output3 = new ArrayList<>();
input.stream().reduce((a, b) -> {
if (a == b && (output3.size()==0 || output3.get(output3.size() - 1) != b)) {
output3.add(b);
}
return b;
});
System.out.println("相邻重复数:"+output3);
广告 您可能关注的内容 |