Эти почтовые ящики были пронумерованы с 1 по 150, и, начиная с почтового ящика 2, он открыл двери всех чётных почтовых ящиков, оставив остальные закрытыми.Затем, начиная с почтового ящика 3, он переходил к каждому третьему почтовому ящику, открывая дверь, если она была закрыта, и закрывая ее, если она была открыта.Затем он повторил эту процедуру для каждого четвертого почтового ящика, затем для каждого пятого почтового ящика и т. Д.
Я пытаюсь воссоздать этот абзац.Я знаю, что моя первая и третья функция находятся в find, но по какой-то причине мой логический параметр не использует мой цикл во второй функции в выводе.Вот код:
public class Lab {
public static void main (String[] args) {
Boolean[] mailboxarray = new Boolean[150];
closeMailboxes(mailboxarray);
doCrazyMailman(mailboxarray);
showMailboxstate(mailboxarray);
}
/**
* purpose:
* pre-condition:
* post-condition:
* @param mailboxarray
*/
public static void closeMailboxes(Boolean[] mailboxarray) {
for (int i = 0; i <150; i++) {
mailboxarray[i] = Boolean.FALSE;
}
}
/**
* purpose:
* pre-condition:
* post-condition:
* @param mailboxarray
*/
public static void doCrazyMailman(Boolean[] mailboxarray) {
// to help you with troubleshooting, I will add some outputs
// it is always beneficial to be able to see what's your program
// is actually doing right now
for (int i = 1; i <= 150; i++) {
for (int j = i; j < 150;j=j+i+1) {
}
}
}
/**
* purpose:
* pre-condition:
* post-condition:
*/
public static void showMailboxstate(Boolean[] mailboxarray) {
for (int i = 0; i < 150; i++) {
int number = i + 1;
// this will output only closed doors
// as shown in assignment's screenshot
// it reads next:
// if the current boolean is FALSE - display message
if (!mailboxarray[i])
System.out.println("Door " + number + " is closed");
}
}
}