P1161 开灯java题解
时间: 2024-01-14 12:21:49 浏览: 42
根据引用[2]提供的题解,以下是P1161 开灯的Java题解:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
boolean[] lights = new boolean[n + 1];
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
if (j % i == 0) {
lights[j] = !lights[j];
}
}
}
int count = 0;
for (int i = 1; i <= n; i++) {
if (lights[i]) {
count++;
}
}
System.out.println(count);
scanner.close();
}
}
```
这个题解使用了一个布尔数组`lights`来表示灯的状态,初始时所有灯都是关闭的。然后,通过两层循环遍历每个操作和每个灯,如果灯的编号能被操作的次数整除,就改变灯的状态。最后,统计打开的灯的数量并输出。