题目描述:
有编号1~100个灯泡,起初所有的灯都是灭的。有100个同学来按灯泡开关,如果灯是亮的,那么按过开关之后,灯会灭掉。如果灯是灭的,按过开关之后灯会亮。
现在开始按开关。
第 1 个同学,把所有的灯泡开关都按一次(按开关灯的编号:1,2,3,…100)。
第 2 个同学,隔一个灯按一次(按开关灯的编号:2,4,6,…,100)。
第 3 个同学,隔两个灯按一次(按开关灯的编号:3,6,9,…,99)。
分析问题:就是统计每个灯被按的次数
代码:
public class Solution {
public static void main(String[] args) {
System.out.println(getResult());
int res = 0;
for (int i = 1; i <= 100; i++) {
if (getCount(i) % 2 != 0)
res++;
}
System.out.println(res);
}
public static int getResult() {
int[] statue = new int[101];
for (int i = 1; i <= 100; i++) {
for (int j = 1; j <= 100; j++) {
if (j % i == 0) {
statue[j] ++;
}
}
}
int count = 0;
for (int i = 1; i <= 100; i++) {
if (statue[i] % 2 != 0) {
count++;
}
}
return count;
}
public static int getCount(int n) {
int count = 0;
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
count++;
}
}
return count;
}
}