Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
80963 sh25_huangse 开关灯 C++ 通过 0 MS 252 KB 971 2026-01-04 15:36:35

Tests(1/1):


#include <iostream> #include <vector> using namespace std; int main() { int N, M; cin >> N >> M; // light[i] 表示第i盏灯的状态:true=开, false=关 // 为了方便,我们使用下标 1..N,忽略下标0 vector<bool> light(N + 1, true); // 初始全部开启 // 模拟M个人的操作 for (int person = 1; person <= M; person++) { // 对当前人的所有倍数编号的灯进行取反 for (int lamp = person; lamp <= N; lamp += person) { light[lamp] = !light[lamp]; // 取反 } } // 输出关闭的灯的编号 bool first = true; // 标记是否是第一个输出的编号(用于控制逗号) for (int i = 1; i <= N; i++) { if (!light[i]) { // 灯是关闭的 if (!first) { cout << ","; } cout << i; first = false; } } cout << endl; return 0; }


测评信息: