18.黑板上的数涂颜色

疫情过后希望小学终于又重新开学了,3年2班开学第一天的任务是:将后面的黑板报重新制作。
黑板上已经写上了N个正整数,同学们需要给这每个数分别上一种颜色,为了让黑板报既美观又有学习意义
老师要求同种颜色的所有数都可以被这个颜色中最小的那个数整除,现在帮小朋友们算算最少需要多少种颜色,给这N个数进行上色

输入描述
第一行有一个正整数N,其中 1 <= n <=100
第二行有N个int型数,保证输入数据在[1,100]范围中,表示黑板上各个正整数的值

输出描述
输出只有一个整数,为最少需要的颜色种数

输入
3
2 4 6
输出
1
说明:
所有数都能被2整除

输入
4
2 3 4 9
输出
2
说明:
2与4涂一种颜色,4能被2整除
3与9涂另一种颜色,9能被3整除
不能涂同一种颜色

 

查看代码

import java.util.*;

public class Demo18 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());
        String[] split = sc.nextLine().split(" ");

        ArrayList<Integer> list = new ArrayList<>();
        for(int i = 0; i < n; i++){
            list.add(Integer.parseInt(split[i]));
        }

        list.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1 - o2;
            }
        });

        if(list.get(0) == 1){
            System.out.println(1);
            return;
        }

        for(int i = 0; i < list.size(); i++){
            int temp = list.get(i);
            for(int j = i + 1; j < list.size(); ){
                if(list.get(j) % temp == 0) list.remove(j);
                else j++;
            }
        }
        System.out.println(list.size());
    }
}

 

总结:练的太少,思路崎岖。

 

posted @ 2022-03-26 11:08  Jukim  阅读(652)  评论(0编辑  收藏  举报