HSinghxxx
HSinghxxx

Reputation: 55

Java boolean array print out true issue

OK, so this is a little tricky but let me explain. I have a boolean of 100 values. for a 100 steps I have to switch value from true to false, however this is increments of the step value. e.g.

first step = increment by one and flip false to true second step = increment by two and flip boolean (no matter the value) third step........ im sure you get this by now. this will go on for a 100 steps incremented by the step value each time.

So I ahve got so far but I am getting some dodgy results, I need to know how to look through the values or the boolean and display the true ones only after the very last step. Any help??

/
   public class MailBox {
    public static void main(String[] args) {
    boolean[] amountToflip = new boolean[100];
    int boxnum;
    for(boxnum=0; boxnum<amountToflip.length;boxnum++){
      amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }
    for(boxnum=1; boxnum<amountToflip.length;boxnum+=2){
      amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=2; boxnum<amountToflip.length;boxnum+=3){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

      for(boxnum=3; boxnum<amountToflip.length;boxnum+=4){
    amountToflip[boxnum] = !amountToflip[boxnum];
   System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=4; boxnum<amountToflip.length;boxnum+=5){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=5; boxnum<amountToflip.length;boxnum+=6){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=6; boxnum<amountToflip.length;boxnum+=7){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=7; boxnum<amountToflip.length;boxnum+=8){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=8; boxnum<amountToflip.length;boxnum+=9){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=9; boxnum<amountToflip.length;boxnum+=10){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=10; boxnum<amountToflip.length;boxnum+=11){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=11; boxnum<amountToflip.length;boxnum+=12){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=12; boxnum<amountToflip.length;boxnum+=13){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=13; boxnum<amountToflip.length;boxnum+=14){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=14; boxnum<amountToflip.length;boxnum+=15){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=15; boxnum<amountToflip.length;boxnum+=16){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=16; boxnum<amountToflip.length;boxnum+=17){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=17; boxnum<amountToflip.length;boxnum+=18){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=18; boxnum<amountToflip.length;boxnum+=19){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=19; boxnum<amountToflip.length;boxnum+=20){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=20; boxnum<amountToflip.length;boxnum+=21){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=21; boxnum<amountToflip.length;boxnum+=22){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=22; boxnum<amountToflip.length;boxnum+=23){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=23; boxnum<amountToflip.length;boxnum+=24){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=24; boxnum<amountToflip.length;boxnum+=25){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=25; boxnum<amountToflip.length;boxnum+=26){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=26; boxnum<amountToflip.length;boxnum+=27){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }
      for(boxnum=27; boxnum<amountToflip.length;boxnum+=28){
     amountToflip[boxnum] = !amountToflip[boxnum];
      System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=28; boxnum<amountToflip.length;boxnum+=29){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=29; boxnum<amountToflip.length;boxnum+=30){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=30; boxnum<amountToflip.length;boxnum+=31){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=31; boxnum<amountToflip.length;boxnum+=32){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=32; boxnum<amountToflip.length;boxnum+=33){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }
      for(boxnum=33; boxnum<amountToflip.length;boxnum+=34){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=34; boxnum<amountToflip.length;boxnum+=35){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=35; boxnum<amountToflip.length;boxnum+=36){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=36; boxnum<amountToflip.length;boxnum+=37){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=37; boxnum<amountToflip.length;boxnum+=38){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=38; boxnum<amountToflip.length;boxnum+=39){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=39; boxnum<amountToflip.length;boxnum+=40){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=40; boxnum<amountToflip.length;boxnum+=41){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=41; boxnum<amountToflip.length;boxnum+=42){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=42; boxnum<amountToflip.length;boxnum+=43){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=43; boxnum<amountToflip.length;boxnum+=44){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=44; boxnum<amountToflip.length;boxnum+=45){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=45; boxnum<amountToflip.length;boxnum+=46){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=46; boxnum<amountToflip.length;boxnum+=47){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=47; boxnum<amountToflip.length;boxnum+=48){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=48; boxnum<amountToflip.length;boxnum+=49){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=49; boxnum<amountToflip.length;boxnum+=50){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=50; boxnum<amountToflip.length;boxnum+=51){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=51; boxnum<amountToflip.length;boxnum+=52){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=52; boxnum<amountToflip.length;boxnum+=53){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=53; boxnum<amountToflip.length;boxnum+=54){
    amountToflip[boxnum] = !amountToflip[boxnum];
   System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=54; boxnum<amountToflip.length;boxnum+=55){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=55; boxnum<amountToflip.length;boxnum+=56){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=56; boxnum<amountToflip.length;boxnum+=57){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=57; boxnum<amountToflip.length;boxnum+=58){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=58; boxnum<amountToflip.length;boxnum+=59){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=59; boxnum<amountToflip.length;boxnum+=60){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=60; boxnum<amountToflip.length;boxnum+=61){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=61; boxnum<amountToflip.length;boxnum+=62){
    amountToflip[boxnum] = !amountToflip[boxnum];
   System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=62; boxnum<amountToflip.length;boxnum+=63){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=63; boxnum<amountToflip.length;boxnum+=64){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=64; boxnum<amountToflip.length;boxnum+=65){
    amountToflip[boxnum] = !amountToflip[boxnum];
   System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=65; boxnum<amountToflip.length;boxnum+=66){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=66; boxnum<amountToflip.length;boxnum+=67){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=67; boxnum<amountToflip.length;boxnum+=68){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=68; boxnum<amountToflip.length;boxnum+=69){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=69; boxnum<amountToflip.length;boxnum+=70){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=70; boxnum<amountToflip.length;boxnum+=71){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=71; boxnum<amountToflip.length;boxnum+=72){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=72; boxnum<amountToflip.length;boxnum+=73){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=73; boxnum<amountToflip.length;boxnum+=74){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=74; boxnum<amountToflip.length;boxnum+=75){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=75; boxnum<amountToflip.length;boxnum+=76){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=76; boxnum<amountToflip.length;boxnum+=77){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=77; boxnum<amountToflip.length;boxnum+=78){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=78; boxnum<amountToflip.length;boxnum+=79){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=79; boxnum<amountToflip.length;boxnum+=80){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=80; boxnum<amountToflip.length;boxnum+=81){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=81; boxnum<amountToflip.length;boxnum+=82){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=82; boxnum<amountToflip.length;boxnum+=83){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);  
     }

      for(boxnum=83; boxnum<amountToflip.length;boxnum+=84){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=84; boxnum<amountToflip.length;boxnum+=85){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=85; boxnum<amountToflip.length;boxnum+=86){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=86; boxnum<amountToflip.length;boxnum+=87){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=87; boxnum<amountToflip.length;boxnum+=88){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=88; boxnum<amountToflip.length;boxnum+=89){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=89; boxnum<amountToflip.length;boxnum+=90){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=90; boxnum<amountToflip.length;boxnum+=91){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=91; boxnum<amountToflip.length;boxnum+=92){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

      for(boxnum=92; boxnum<amountToflip.length;boxnum+=93){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=93; boxnum<amountToflip.length;boxnum+=94){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=94; boxnum<amountToflip.length;boxnum+=95){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=95; boxnum<amountToflip.length;boxnum+=96){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=96; boxnum<amountToflip.length;boxnum+=97){
    amountToflip[boxnum] = !amountToflip[boxnum];
     System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=97; boxnum<amountToflip.length;boxnum+=98){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=98; boxnum<amountToflip.length;boxnum+=99){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
     }

    for(boxnum=99; boxnum<amountToflip.length;boxnum+=100){
    amountToflip[boxnum] = !amountToflip[boxnum];
    System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
    }
   }

}

What is happening is that the end printout displays the values for each step which include true and false, I only want to display true values. I put an int in the so that I can have a boxnumber so I know which number is true e.g. box 1 = True, box 7 = true

Upvotes: 1

Views: 650

Answers (3)

OldCurmudgeon
OldCurmudgeon

Reputation: 65889

Here's your code fixed so you don't repeat yourself unnecessarily:

public static void mailbox() {
    boolean[] amountToflip = new boolean[100];
    for (int boxNum = 0; boxNum < amountToflip.length; boxNum++) {
        for (int i = boxNum; i < amountToflip.length; i++) {
            amountToflip[i] = !amountToflip[i];
            System.out.println("Mailbox: " + i + amountToflip[i]);
        }
    }
}

And now you can see how easy it is to only print where the boolean is true:

public static void mailbox() {
    boolean[] amountToflip = new boolean[100];
    for (int boxNum = 0; boxNum < amountToflip.length; boxNum++) {
        for (int i = boxNum; i < amountToflip.length; i++) {
            amountToflip[i] = !amountToflip[i];
            if (amountToflip[i]) {
                System.out.println("Mailbox: " + i + amountToflip[i]);
            }
        }
    }
}

Here's the same code with the printing moved to the end and tidied:

public static void mailbox() {
    boolean[] amountToflip = new boolean[100];
    for (int boxNum = 0; boxNum < amountToflip.length; boxNum++) {
        for (int i = boxNum; i < amountToflip.length; i++) {
            amountToflip[i] = !amountToflip[i];
        }
    }
    // Roll all 100 up into a single display.
    for (int i = 0; i < amountToflip.length; i++) {
        System.out.print(amountToflip[i] ? "1" : " ");
    }
    System.out.println();
}

Prints:

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

I still don't understand what you are trying to achieve though.

Upvotes: 1

Hayo Baan
Hayo Baan

Reputation: 644

To get this straight, you want to perform the flipping as described, and then only display the results for the true boxes, at the end? Then I think this is what you are looking for:

public class MailBox {
  public static void main(String[] args) {
    boolean[] amountToflip = new boolean[100];

    // Perform the flipping
    for (int increment=1; increment <= amountToflip.length; increment++) {      
        for (int boxnum=increment - 1; boxnum < amountToflip.length; boxnum+=increment) {
            amountToflip[boxnum] = !amountToflip[boxnum];
        }
    }

    // Now print the result
    for (int i = 0; i < amountToflip.length; i++) {
        if (amountToflip[i]) {
            System.out.println("Mailbox: " + i);
        }
    }
  }
}

Upvotes: 1

mazhar islam
mazhar islam

Reputation: 5629

Remember, to avoid any redundant work, we use loops! So why 100 loops doing same thing only changing the values of boxnum?

Try this to avoid 100 loops:

int i;
for(i = 0; i <100; i++) {
    for(boxnum=i; boxnum < amountToflip.length; boxnum = boxnum + 1 +i){
        amountToflip[boxnum] = !amountToflip[boxnum];
     }
}

Now for print do something like that,

for(boxnum = 0; boxnum < amountToflip.length; boxnum++) {
    if(amountToflip[boxnum]) // this condition will check only for true
        System.out.println("Mailbox: " + boxnum + amountToflip[boxnum]);
}

Upvotes: 2

Related Questions