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;
    }
}
相关推荐
kakawzw5 分钟前
微服务组件源码2——Spring Ribbon原理(基于RibbonLoadBalancerClient)
java·微服务·ribbon
半壶清水7 分钟前
用python脚本加html自建的书法字典
开发语言·python·html
凯瑟琳.奥古斯特9 分钟前
力扣1003题C++解法详解
开发语言·c++·算法·leetcode·职场和发展
计算机安禾9 分钟前
【算法分析与设计】第48篇:流算法与数据概要技术
java·服务器·网络·数据库·算法
myenjoy_111 分钟前
Python + Snap7 实现西门子 S7-1200/1500 数据采集
开发语言·python
hunterkkk(c++)15 分钟前
SPFA最短路径算法(c++)
java·c++·算法
weixin_4462608522 分钟前
HANDOFF:基于蒸馏互补教师的人形机器人任务空间整体控制
人工智能·算法·机器人
c2385628 分钟前
C++11final与override6、智能指针
开发语言·c++
*neverGiveUp*32 分钟前
初步了解Django框架
开发语言·python·django
Java_2017_csdn33 分钟前
在 Java 中,MessageFormat.format() 和 String.format() 函数对比?
java·开发语言·前端·数据库