JAVA 灯泡开关

import java.util.Scanner;
public class Hello {
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		System.out.println("请输入灯泡个数");
		int n=reader.nextInt(); //输入灯泡个数
		int [] a=new int[n];    //记录灯泡状态,1表示亮着,0表示关着
		int i,j;
		int count=0;
		for(i=1;i<=n;i++) {
			if(i==1) {          //打开所有灯泡
				for(j=0;j<n;j++) {
					a[j]=1;
				}
			}
			else if(i==2) {     //每两个灯泡关闭一次
				for(j=0;j<n;j++) {
					count++;
					if(count==i) {
						a[j]=0;
						count=0;
					}
				}
			}
			else if(i>2 && i<n) {    //对于第 i 轮,每 i 个灯泡切换一次开关
				for(j=0;j<n;j++) {
					count++;
					if(count==i && a[j]==0) {
						a[j]=1;
						count=0;
					}
					else if(count==i && a[j]==1) {
						a[j]=0;
						count=0;
					}
				}		
			}
			else {          //对于第 n 轮,只切换最后一个灯泡的开关
				if(a[i-1]==1)
					a[i-1]=0;
				else if(a[i-1]==0)
					a[i-1]=1;
			}
			count=0;
		}
		System.out.println("灯泡状态:");
		for(i=0;i<n;i++) {       //输出灯泡状态
			System.out.print(a[i]+" ");
		}
		System.out.print("\n");
		System.out.println("灯泡亮着的个数:");
		for(i=0;i<n;i++) {       //输出亮着的灯泡个数
			if(a[i]==1)
				count++;
		}
		System.out.println(count);
		reader.close();
	}
}

结果:


猜你喜欢

转载自blog.csdn.net/abc1498880402/article/details/80353528