shiyan8


1. 储物柜难题
一个学校有100个储物柜和100个学生。所有的储物柜在上学第一天都是关着的。随着学生进来,第一个学生,用S1表示,打开每个柜子。然后,第二个学生,用S2表示,从第二个柜子开始,第二个柜子用L2表示,然后改变每个第二个柜子。学生S3从第三个柜子开始,然后改变每个第三个柜子(如果它是开的就关上,如果它是关的就打开)。学生S4从柜子L4开始,然后改变每个第四个柜子。学生S5从L5开始,然后改变每个第五个柜子,以此类推,直到学生S100改变L100为止。在所有学生都经过教学楼并且改变了柜子之后,哪些柜子是开着的?编写程序找出答案。

 

 


package com.cust.guizi;

public class test {
public static void main(String [] args){
int[] gz=new int[101];
for(int i=0;i<101;i++){
gz[i]=0;
};

tools t =new tools();
for(int j=1;j<=100;j++){
t.action(j, gz);
}
for(int k=1;k<=100;k++){
System.out.print("第"+k+"个柜子是");
if(gz[k]==0){
System.out.println("关着的");
}if(gz[k]==1){
System.out.println("开着的");
}
}

}

}


package com.cust.guizi;

public class tools {
public void action(int num,int[] gz ){
for(int i =num;i<=100;i=i+num){
if(gz[i]==0){
gz[i]=1;

}
else{
gz[i]=0;

}

}


}

}

posted on 2016-11-14 11:00  天才程序猿  阅读(442)  评论(0编辑  收藏  举报

导航