偶然看到腾讯一个报道《15道烧糊大脑的苹果面试题》,里面有些很好算法题,就自己动手写了一下,寻求点乐趣。
出处URL:http://tech.qq.com/a/20120611/000062.htm#p=8
public class AppleDemo00 {
/**
* @author 州伟
* @param args
* 现在有100个标记过的电灯泡。第一个人经过这些灯时,点亮所有的灯,第二个人经过时每隔一盏灯就切换开关一次,
* 第三个人经过时每隔两盏灯切换开关一次。
* 请问,当第100个人经过时,还剩多少盏亮着的灯?
*/
public static void main(String[] args) {
//初始化一个数组 ,数组元素 0:关灯、1:开灯
int[] preLights = new int[100]; //初始化元素都为0,默认关灯
for(int a : preLights){
System.out.print(a + " ");
}
for(int i=1;i<=100;i++){ //100个人
for(int j=0;j<100;j=j+i){ //
if(j==0 && i==1){ //第一个人路过时,第一站灯
preLights[j] = turnOnorOffLight(preLights[j]);
}else{
if(j>1){
preLights[j-1] = turnOnorOffLight(preLights[j-1]);
}
}
}
}