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(); } }
结果: