close

問題描述 :

交集:由幾個集合的共同元素所形成的集合,稱為這幾個集合的交集,由 A 、 B 兩集合的共同元素所形成的交集以 A ∩ B 表之。

範例 :

A 、 B 分別為兩個集合,集合裏有不同的元素,如下列所示,求出其交集之集合內容 :

A = 1,2,3,5,8,13

B = 1,2,4,6,8,10

交集: 1 2 8

求輸入任 2 個集分別為合 A 集合及 B 集合,求其交集 ?

輸入說明 :

輸入兩列的數字代表 A 及 B 兩集合,第一列為 A 集合,第一列為 B 集合,每一列集合中的元素以逗號分隔開來。

例如:

輸入 2 列字串 ( 第一列為 A 集合,第一列為 B 集合 ) :

1,3,5,7,9,11

2,3,4,5,6,8,10

輸出說明 :

輸出 A 及 B 兩集合之交集 , 輸出元素以空白分隔開來, 須按照小到大排列 . 若空集合則輸出 null

例如:

按照小到大排列 輸出為:

3, 5

範例 :

題目來源:http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=15560

import java.util.Scanner;

public class C_ST82 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] A=scanner.nextLine().split(",");
        String[] B=scanner.nextLine().split(",");
        String[] C=new String[A.length];
        int num=0;//計數
        for(int i=0;i<A.length;i++){
            //System.out.println(A[i]);
            for(int j=0;j<B.length;j++){
                //System.out.println(B[j]);
                if(A[i].equals(B[j])){
                    C[num]=A[i];
                    num++;
                }
            }
        }
        //System.out.println(num);
        for(int i=0;i<num;i++){
            for(int j=i+1;j<num;j++){
                //System.out.println("i"+C[i]+" j"+C[j]);
                if(Integer.parseInt(C[i])>Integer.parseInt(C[j])){
                    String ss=C[i];
                    C[i]=C[j];
                    C[j]=ss;
                }
            }
        }
        
        for(int i=0;i<num;i++){
            if(i!=0){
                System.out.print(" ");
            }
            System.out.print(C[i]);
        }
        if(num==0){
            System.out.print("null");
        }
        System.out.println();
        scanner.close();
    }

}
 

arrow
arrow
    全站熱搜

    阿雅 發表在 痞客邦 留言(0) 人氣()