邮箱程序Java(翻转布尔值)
我的任务是创建一个程序,用户在其中输入一个数字,即邮箱总数。所有邮箱将在关闭位置启动(布尔值为true)。然后每隔一个邮箱翻转一次,然后是第三个、第四个、第五个,依此类推,直到最后一个邮箱是唯一被翻转的邮箱。然后,您必须报告哪些邮箱保持关闭状态。我还没有把封闭的盒子还给用户。因为我被困在如何让它通过阵列过滤的问题上邮箱程序Java(翻转布尔值),java,for-loop,boolean,Java,For Loop,Boolean,我的任务是创建一个程序,用户在其中输入一个数字,即邮箱总数。所有邮箱将在关闭位置启动(布尔值为true)。然后每隔一个邮箱翻转一次,然后是第三个、第四个、第五个,依此类推,直到最后一个邮箱是唯一被翻转的邮箱。然后,您必须报告哪些邮箱保持关闭状态。我还没有把封闭的盒子还给用户。因为我被困在如何让它通过阵列过滤的问题上 scanner input = new Scanner(System.in); System.out.println("This program will clos
scanner input = new Scanner(System.in);
System.out.println("This program will close and open mailboxes in a fixed pattern. How many mailboxes would you like to see?");
int numOfBoxes = input.nextInt();
boolean [] boxes = new boolean [numOfBoxes];
for(int i = 0; i <= numOfBoxes; i++){
for(int j = 2; j <= numOfBoxes; j++){
if(boxes.indexOf[i] % j == 0){
boxes[i] = !boxes[i];
}
}
}
扫描仪输入=新扫描仪(System.in);
System.out.println(“此程序将以固定模式关闭和打开邮箱。您希望看到多少邮箱?”);
int numoboxs=input.nextInt();
布尔[]框=新布尔[numoboxs];
对于(inti=0;i
for(int i=2; i<=numOfBoxes; ++i) {
for(int j=i-1; j<numOfBoxes; j+=i) {
boxes[j] = !boxes[j]
}
}
不幸的是,这是不正确的。当给出5时,它应该返回:1,4。您给出的代码给出:1,2,4请给出一个输入和输出示例或澄清任务。您的问题是什么?
public static void main(String[] args) {
int numOfBoxes = 5;
boolean [] boxes = new boolean [numOfBoxes];
for(int i = 2; i <= numOfBoxes; ++i){
for(int j = i-1; j < numOfBoxes; j+=i){
boxes[j] = !boxes[j];
}
}
System.out.println(Arrays.toString(boxes));
}
[false, true, true, false, true]