还挺有趣的,写的时候第一次超时了,用了双重循环
第二次就索性直接只计算了第n盏灯
第三次发现,更本就不需要数组,哈哈哈
0、1变换有三种方法:
//法一:
if(arr[n-1] == 0) {
arr[n-1] = 1;
} else {
arr[n-1] = 0;
}
//法二:
arr[n-1] = (arr[n-1] + 1) % 2;
//法三:
arr[n-1] = arr[n-1] ^ 1;
上代码:
package com.demo2;
import java.util.Scanner;
public class HDU_oj2053_2 {
public static void main(String[] args) {
Scanner sn = new Scanner(System.in);
while(sn.hasNext()) {
int n = sn.nextInt();
int[] arr = new int[n]; //初始全是零,即所有的灯初始全是关着的
for(int i = 1; i <= n; i++) { //i表示次数
//既然题目要求第n个,拿我们每一次就至改变第n个的值
if(n % i == 0) {
/*
* 法一:
* if(arr[n-1] == 0) {
arr[n-1] = 1;
} else {
arr[n-1] = 0;
}*/
/*法二:
* arr[n-1] = (arr[n-1] + 1) % 2;*/
/*法三:*/
arr[n-1] = arr[n-1] ^ 1;
}
}
System.out.println(arr[n-1]);
}
sn.close();
}
}