oj赛氪算法练习

开关灯2

java 复制代码
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();

        ArrayList<Integer> result = findClosedLamps(N);

        // 输出结果
        for (int i : result) {
            System.out.print(i + " ");
        }
    }

    private static ArrayList<Integer> findClosedLamps(int N) {
        ArrayList<Integer> closedLamps = new ArrayList<>();

        // 初始化数组,全部设置为 true 表示灯都是开着的
        boolean[] lamps = new boolean[N + 1];

        // 开关灯操作
        for (int i = 2; i <= N; i++) {
            for (int j = i; j <= N; j += i) {
                lamps[j] = !lamps[j];
            }
        }

        // 找到关闭的灯的编号
        for (int i = 1; i <= N; i++) {
            if (!lamps[i]) {
                closedLamps.add(i);
            }
        }

        return closedLamps;
    }
}
相关推荐
晴空月明3 分钟前
Java 并发工具类核心使用场景深度解析
java
程序员岳焱11 分钟前
Spring 开发中的十大常见坑及解决方案
java·后端·spring
GG不是gg37 分钟前
二分算法深度解析
算法
is081537 分钟前
简说 python
开发语言·python
小庞在加油39 分钟前
从零到一:C语言基础入门学习路线与核心知识点全解析
c语言·开发语言·学习
hmywillstronger1 小时前
【Python】【Rhino】assign column mark into bearing area‘s user text attributing
开发语言·python
liulilittle1 小时前
_mm_aeskeygenassist_si128 硬件指令执行的操作
开发语言·c++·aes
喵~来学编程啦1 小时前
【全队项目】从GAN到ESRGAN的超分辨率处理
开发语言·python·算法
机器学习之心1 小时前
光伏功率预测 | RF随机森林多变量单步光伏功率预测(Matlab完整源码和数据)
算法·随机森林·matlab·多变量单步光伏功率预测
IT艺术家-rookie1 小时前
golang--具名返回值、匿名返回值与 defer 语句之间的关系,以及 panic 对它们的影响
开发语言·golang