有一百盏灯,全部亮着并且从一到一百进行编号,对每盏灯做如下处理,如果该灯的编号能被1整除则拨一下开关,能被二整除再拨一下,以此类推,直到该灯的编号(不含编号本身)为至,问最后哪几盏灯亮着。

public class Example_100Light {

	public static void main(String[] args) {

		int a[] = new int[100]; //定义数组a[]存放100盏灯的状态
		
		//循环将100盏灯初始化为亮的状态
		for(int i=0;i<100;i++){  
			a[i]=1;  //1表示灯为亮 0表示灯为灭
		}
		
		for(int i=1;i<=100;i++){ //外层循环:控制1到100 用于遍历取值
			for(int j=1;j<100;j++){ //j表示灯的编号 从1到100
				if(j%i==0){ //如果能被整除 则变状态
					if(a[j-1]==1) //若 亮 则拨开关变灭
						a[j-1]=0;
					else
						a[j-1]=1; //否则灭拨开关变亮
				}
					
			}
		}
		
		for(int i=1;i<=100;i++){
			if(a[i-1]==1)
				System.out.print(i+"  ");
		}
		
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值