- #1
thatguy101
- 14
- 0
. Homework Statement
A school has 100 lockers and 100 students. All lockers are closed on the first day of school. As the students enter, the first student, denoted S1, opens every locker. Then the second student, S2, begins with the second locker, denoted L2, and closes every other locker. Student S3 begins with the third locker and changes every third locker (closes it if it was open, and opens it if it was closed). Student S4 begins with locker L4 and changes every fourth locker. Student S5 starts with L5 and changes every fifth locker, and so on, until student S100 changes L100. After all the students have passed through the building and changed the lockers, which lockers are open? Write a program to find your answer. The program should display the answer like this: Locker x is open Locker y is open ... Locker z is open Design requirement: Use a method and an array of 100 boolean elements, each of which indicates whether a locker is open (true) or closed (false). Initially, all lockers are closed.
I'm writing a program but the output is all false's. I know that all the perfect squares should be true, but I'm not sure where I am struggling with this program
Mod note: Added code tags to preserve indentation.
A school has 100 lockers and 100 students. All lockers are closed on the first day of school. As the students enter, the first student, denoted S1, opens every locker. Then the second student, S2, begins with the second locker, denoted L2, and closes every other locker. Student S3 begins with the third locker and changes every third locker (closes it if it was open, and opens it if it was closed). Student S4 begins with locker L4 and changes every fourth locker. Student S5 starts with L5 and changes every fifth locker, and so on, until student S100 changes L100. After all the students have passed through the building and changed the lockers, which lockers are open? Write a program to find your answer. The program should display the answer like this: Locker x is open Locker y is open ... Locker z is open Design requirement: Use a method and an array of 100 boolean elements, each of which indicates whether a locker is open (true) or closed (false). Initially, all lockers are closed.
Homework Equations
I'm writing a program but the output is all false's. I know that all the perfect squares should be true, but I'm not sure where I am struggling with this program
The Attempt at a Solution
Mod note: Added code tags to preserve indentation.
Java:
public class Assignment5 {
public static void main(String[] args) {
//set up all variables
final boolean OPEN = true;
final boolean CLOSED = false;
//set up array
boolean lockers[] = new boolean[100];
//make all of them false
for(int j = 0; j <= 99; j++){
lockers[j]= CLOSED ;
}
//set up the students that open and close lockers
for( int stu = 1; stu <= 100; stu++){
for(int j = 0; j <= 99; j++){
if(j % stu == 0){
if (lockers == CLOSED){
lockers = OPEN;
}
//I think it's somewhere in here where my code is wrong.
if (lockers == OPEN){
lockers = CLOSED;
}
}
}
}
for( int j = 0; j <= 99; j++){
System.out.println("locker " + (j+1) + " is " + lockers[j]);
}
}
}
Last edited: