There is a room with 1000 light switches, numbered 1, 2, 3,
4, ... 1000, all turned off.
Outside the room there are 1000 men, numbered man1, man2,
...man 1000
In order, each man walks into the room and changes the
position of each switch that is a multiple of his number.
That is: man1 flips every switch
man2 flips switches 2, 4, 6, 8 ....1000
man3 flips switches 3, 6, 9, ..... 999
.....
Man 1000 flips switch 1000
After all 1000 men are done, how many switches are on?

Answers were Sorted based on User's Feedback



There is a room with 1000 light switches, numbered 1, 2, 3, 4, ... 1000, all turned off. Outside ..

Answer / rams

The answer is 31. All the perfect squares are on. ie 1,4,9,16,25,36....961(31*31).

Here is the logic.

The first person switches on every thing.

The multiple factors come in pairs, so the changes done by multiple factors has no effect. So all the Switches are on.

The switches are turned off by the person with same number.

The square root switches on the lights for the perfect squares.

Is This Answer Correct ?    9 Yes 0 No

There is a room with 1000 light switches, numbered 1, 2, 3, 4, ... 1000, all turned off. Outside ..

Answer / orenise

The above code does not work, Please ignore it. I will Post
the answer, when i got the correct Code.

Is This Answer Correct ?    2 Yes 0 No

There is a room with 1000 light switches, numbered 1, 2, 3, 4, ... 1000, all turned off. Outside ..

Answer / orenise

The answer is 31. here is the code...

private static void Q1() {
int firstMan = 1;
int lastMan = 1000;
int numOfSwitches = 1000;
boolean[] switches = new boolean[numOfSwitches + 1];
// Print the switches initial state.
System.out.println("switches");
int col = 0;
for (int j = 0; j < switches.length; j++) {
System.out.print("[" + switches[j] + "], ");
if (col >= 10) {
System.out.println();
col = 0;
}
col++;
}

for (int currentMan = firstMan; currentMan <= lastMan;
currentMan++) {
for (int switchNum = currentMan; switchNum <=
lastMan; switchNum++) {
int divids = switchNum % currentMan;
if (divids == 0) {
switches[switchNum] = !switches[switchNum];
}
}
}

// Print the switches final state.
System.out.println("switches");
int col2 = 0, sum = 0;
for (int j = 0; j < switches.length; j++) {
System.out.print("[" + switches[j] + "], ");
if (switches[j]) {
sum++;
}
if (col2 >= 10) {
System.out.println();
col2 = 0;
}
col2++;
}
System.out.println(" sum = " + sum);
}

Is This Answer Correct ?    3 Yes 2 No

Post New Answer

More Programming Languages AllOther Interview Questions

what is the difference between uservariables and systemvariables (in Environmental variables)???

0 Answers  


in IBM PC -AT.WAT AT REFERS TO?

0 Answers   IBM,


what is the system development cycle

0 Answers  


could u please also write an example of a code that involves instances from an abstract class just as u did for interfaces because u said it could also work which i really doubt. thanks

0 Answers  


Even if all fields are initialized also in a program, I am getting COBOL/400 decimal data error .why is it coming?

1 Answers   Freelance,






iam confused among testing ,.net and java. can anybody help me.

0 Answers  


1) How can u create the table?

0 Answers   IBM,


what is the difference between "types" and "data" in abap.

4 Answers   Tech Soft,


in cobol,wat is the difference in using 'set index in occurs clause' ....and 'occurs depending-on clause'

0 Answers   Infosys,


. With the help of above table EMP, perform the following operation is sql. a) Add the new column “DEPTNO” b) Rename the table c) Update table d) Modify the table if column ‘SAL’ whose data type is number (10) and you want to enter varchar2 (15) . For example $USD 20 etc.

2 Answers  


A, B and C are 8 bit nos. They are as follows: A 1 1 0 1 1 0 1 1 B 0 1 1 1 1 0 1 0 C 0 1 1 0 1 1 0 1 Find ( (A-B) u C )=? how to solve this need with steps

5 Answers   TCS,


Data Structure: Show that if k is the smallest integer greater than or equal to n+ (log2n)-2, k comparisons are necessary and sufficient to find the largest and second largest elements of a set of n distinct elements. (k comparisons are required to find what you are looking for, but no more than that are needed)

0 Answers   Student,


Categories