20240421 - 一维数组模拟算法
实际上就只是写写题目
比如说第一个人打开全部的灯, 第二个关闭2的倍数的灯, 第三个打开3的倍数的灯, etc., 求第 m 个人后, 关闭的灯的序号之类的
cpp
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
bool lights[n];
for (int i=0; i < n; i++) {
lights[i] = true;
}
for (int turn=1; turn <= m; turn++) {
for (int i=turn-1; i < n; i += turn) {
lights[i] = !lights[i];
}
}
for (int i=0; i < n; i++) {
if (!lights[i]) {
printf("%d, ", i+1);
}
}
}