Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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,

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? Review the solution below to find the answer.

Locker x is open

Locker y is open

Locker z is open

Solution Code:

public class Test {

public static void main(String[] args) {

// Declare a constant value for the number of lockers

final int NUMBER_OF_LOCKER = 100;

// Create an array to store the status of each array

// The first student closed all lockers, each lockers[i] is false

boolean[] lockers = new boolean[NUMBER_OF_LOCKER];

// Each student changes the lockers

for (int j = 1; j <= NUMBER_OF_LOCKER; j++) {

// Student Sj changes every jth locker

// starting from the lockers[j - 1].

for (int i = j - 1; i < NUMBER_OF_LOCKER; i += j) {

lockers[i] = !lockers[i];

}

}

// Find which one is open

for (int i = 0; i < NUMBER_OF_LOCKER; i++) {

if (lockers[i])

System.out.println("Locker " + (i + 1) + " is open");

}

}

}

Your assignment:

Modify the code to:

-Take the number of students as input, and the number of lockers as input, from the user. -If the user inputs in an invalid number (alphanumeric, decimal, negative #, etc), simply quit the program

-If the user inputs more students than lockers, reduce the number of students to the number of lockers.

-Include more in the output, specifically, in addition to all of the locker openings that is already in the code, summarize:

-The total number of students

-The total number of lockers in total

-The total number of lockers open

-The total number of lockers closed

Submit the .java source file (NOT zipped) in Blackboard

For my Java programming ll class please answer accordingly

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions