JAVA关与开关灯
拉灯问题:
说 有100个房间 每个房间有1盏灯 这些灯都是灭的
还有100个人
第一个人 来到每个房间前 1、2345678910
如果房间编号能够整除1(人的编号)
则 拉一下灯
第二个人 来到每个房间前 2、4、6、8、10、
如果房间编号能够整除2(人的编号)
则 拉一下灯
第三个人 来到每个房间前3、6、9、
如果房间编号能够整除3(人的编号)
则 拉一下灯
......
问:当100个人都拉完灯之后 哪些灯是亮的?
代码
public static void B(){
boolean []islamp=new boolean[100];
for(int b=0;b<100;b++){
islamp[b]=false;
}
for(int i=1;i<=100;i++){
for(int a=1;a<=100;a++){
if(a%i==0){
islamp[a-1]=!islamp[a-1];
}
}
}
for(int c=0;c<islamp.length;c++){
if(islamp[c]){
System.out.println("开着的灯是:"+(c+1));
}
}
}
public static void F(){
for(int i=1;i<=100;i++){
int count=0;
for(int b=1;b<=100;b++){
if(i%b==0){
count++;
}
}
if(count%2==1){
System.out.println(i+"灯亮的");
}
}
}
public static void E(){
int[]a=new int[100];
for(int i=0;i<a.length;i++){
a[i]=-1;
}
for(int i=1;i<=100;i++){
for(int b=i;b<=100;b+=i){
a[b-1]=a[b-1]*(-1);
}
}
for(int c=0;c<a.length;c++){
if(a[c]==1){
System.out.println("开着的灯是:"+(c+1));
}
}
}