dev dev - 5 months ago 23
Java Question

Number Patterns using loops in Java

I have been trying different variations of for loops and have no clue how to make these patterns:

Pattern 1

54321
5432
543
54
5


Pattern 2

1
12
123
1234
12345


Pattern 3

12345
2345
345
45
5


Pattern 4

1
123
12345
123
1


My code that almost matched pattern 1 is the following but doesn't work like the example above.

for (int i = 1 ; i <= rows ; i++) {
for (int j = (rows + 1 - i) ; j > 0 ; j-- ) {
System.out.print(j);
}
System.out.print("\n");
}

Answer
public class PrintPattern {

public static void main(String[] args){
    printPattern1();
    printPattern2();
    printPattern3();
    printPattern4();
}

public static void printPattern1(){

    for (int i = 0; i<5; i++){
        for(int j = 5; j>i; j--)
            System.out.print(j);
        System.out.println();
    }
}

public static void printPattern2(){

    for (int i = 0; i<5; i++){
        for(int k = 0; k<4-i; k++)
            System.out.print(" ");
        for(int j = 1; j<=i+1; j++)
            System.out.print(j);
        System.out.println();
    }
}

public static void printPattern3(){

    for (int i = 0; i<5; i++){
        for(int k = 0; k<i; k++)
            System.out.print(" ");
        for(int j = i+1; j<=5; j++)
            System.out.print(j);

        System.out.println();
    }
}

public static void printPattern4(){

    for (int i = 0; i<5; i++){
        for(int k = 0; k<Math.abs(2-i); k++)
            System.out.print(" ");
        for(int j = 1; j<=5-2*Math.abs(2-i); j++)
            System.out.print(j);
        for (int p = 0; p<Math.abs(2-i); p++)
            System.out.print(" ");
        System.out.println();
    }
}

}