Java的,请按图片要求解决问题

img

public class DoorTest {
    public static void main(String[] args) {
        boolean [] flags=new boolean[100];
        //初始化为false
        for(int i=0;i<flags.length;i++){
            flags[i]=false;
        }
        for(int i=1;i<=100;i++){//表示每个服务员
            for(int j=1;j<=flags.length;j++){//表示每个房间门状态
                if (j%i==0){
                    flags[i-1]=!flags[i-1];
                }
            }
        }
        System.out.println("房门开着的有:");
        for(int i=0;i<flags.length;i++){
            if (flags[i]){
                System.out.print((i+1)+" ");
            }
        }
    }
}

img

思路:
1.定义一个数组,100个boolean类型的元素
2.初始值为false
3.循环嵌套判断i的倍数,对元素去反操作。