JAVA编程题 求解
1.【问题描述】从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出(即两组整数集...
1.
【问题描述】
从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出(即两组整数集“异或”)。
【输入形式】
首先输入第一组整数,以一个空格分隔各个整数;然后在新的一行上输入第二组整数,以一个空格分隔,输入最后一个字符作为一个集合的结束,行末有回车换行。
【输出形式】
按从大到小顺序排序输出合并后的整数集(去掉在两组整数中都出现的整数,以一个空格分隔各个整数)。
【样例输入】
5 1 4 32 8 7 9 -6 A
5 2 87 10 1 B
【样例输出】
87 32 10 9 8 7 4 2 -6
【样例说明】
第一组整数为5 1 4 32 8 7 9 -6,第二组整数分别为5 2 87 10 1。将第一组和第二组整数合并(去掉在两组整数中都出现的整数5和1),并从大到小顺序排序后结果为87 32 10 9 8 7 4 2 -6。
【评分标准】该题要求输出两组整数的异或集,共有5个测试点,提交程序文件名为xor.c。 展开
【问题描述】
从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出(即两组整数集“异或”)。
【输入形式】
首先输入第一组整数,以一个空格分隔各个整数;然后在新的一行上输入第二组整数,以一个空格分隔,输入最后一个字符作为一个集合的结束,行末有回车换行。
【输出形式】
按从大到小顺序排序输出合并后的整数集(去掉在两组整数中都出现的整数,以一个空格分隔各个整数)。
【样例输入】
5 1 4 32 8 7 9 -6 A
5 2 87 10 1 B
【样例输出】
87 32 10 9 8 7 4 2 -6
【样例说明】
第一组整数为5 1 4 32 8 7 9 -6,第二组整数分别为5 2 87 10 1。将第一组和第二组整数合并(去掉在两组整数中都出现的整数5和1),并从大到小顺序排序后结果为87 32 10 9 8 7 4 2 -6。
【评分标准】该题要求输出两组整数的异或集,共有5个测试点,提交程序文件名为xor.c。 展开
3个回答
展开全部
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
public class Homework18_20 {
public static void main(String[] args) {
Integer[] arr1 = {5,1,4,32,8,7,9,-6};
Integer[] arr2 = {5,2,87,10,1};
ArrayList<Integer> ar1 = new ArrayList<Integer>(Arrays.asList(arr1));
System.out.println(ar1);
ArrayList<Integer> ar2 = new ArrayList<Integer>(Arrays.asList(arr2));
ArrayList<Integer> ar12 = new ArrayList<Integer>(Arrays.asList(arr1));
ar12.retainAll(ar2); //ar12获得ar1 和 ar2的交集
System.out.println(ar12);
ar1.removeAll(ar12); //ar1 异或
ar2.removeAll(ar12); //ar2 异或
ArrayList<Integer> ar3 = new ArrayList<Integer>(); //新建结果集合
ar3.addAll(ar1); //加入ar1异或
ar3.addAll(ar2); //加入ar2异或
Collections.sort(ar3); //ar3自然排序
for (int i = ar3.size() - 1; i > -1; i--) {
System.out.print(ar3.get(i) + " "); //倒序取出
}
}
}
展开全部
import java.util.*;
public class DealNum {
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
String str1=scan.nextLine();
String str2=scan.nextLine();
String[] str1temp=str1.split(" ");
String[] str2temp=str2.split(" ");
Set<Integer> set=new TreeSet<Integer>();
for(int i=0;i<str1temp.length-1;i++){
set.add(Integer.parseInt(str1temp[i]));
}
for(int i=0;i<str2temp.length-1;i++){
if(set.contains(Integer.parseInt(str2temp[i]))){
set.remove(Integer.parseInt(str2temp[i]));
}else{
set.add(Integer.parseInt(str2temp[i]));
}
}
Integer[] strSet = new Integer[set.size()];
set.toArray(strSet);
for(int m=strSet.length-1;m>=0;m--){
System.out.println(strSet[m]);
}
}
}
public class DealNum {
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
String str1=scan.nextLine();
String str2=scan.nextLine();
String[] str1temp=str1.split(" ");
String[] str2temp=str2.split(" ");
Set<Integer> set=new TreeSet<Integer>();
for(int i=0;i<str1temp.length-1;i++){
set.add(Integer.parseInt(str1temp[i]));
}
for(int i=0;i<str2temp.length-1;i++){
if(set.contains(Integer.parseInt(str2temp[i]))){
set.remove(Integer.parseInt(str2temp[i]));
}else{
set.add(Integer.parseInt(str2temp[i]));
}
}
Integer[] strSet = new Integer[set.size()];
set.toArray(strSet);
for(int m=strSet.length-1;m>=0;m--){
System.out.println(strSet[m]);
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java的程序名是.c结尾的么,还有,去重建议用set吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询