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;
    }
}
相关推荐
吴声子夜歌6 分钟前
Java——synchronized
java·synchronized
环流_11 分钟前
Redis zinterstore
算法
不知名的忻12 分钟前
交换排序:冒泡排序 vs 快速排序(Java)
java·算法·排序算法
程序员阿明13 分钟前
spring boot + vue3 实现RSA加密解密
java·spring boot·后端
沃普天科技16 分钟前
USB显示器多屏异显多屏拼接IF8032 IT690 VL171 8801 RTD2556
arm开发·驱动开发·算法·计算机外设·音视频·硬件工程·pcb工艺
Byte Wizard21 分钟前
C语言指针深入浅出6
c语言·开发语言
知识分享小能手26 分钟前
R语言入门学习教程,从入门到精通,R语言数据处理与清洗 (9)
开发语言·学习·r语言
wok15730 分钟前
IDEA 无法识别 OkHttpClient?cannot resolve symbol问题解决
java·ide·intellij-idea
炽烈小老头33 分钟前
【 每天学习一点算法 2026/05/14】单词接龙
学习·算法
吴声子夜歌35 分钟前
Java——标准序列化机制
java·序列化