Problem in logic building

Please help me with this pattern using both while loop and for loop in a most simple way.i have problem in logic building of this pattern

@abhishekpandeycsaiml21_c74cb0ea3a791122 your approach should be like this :

Lang - Java

In Pattern Question, there is a common method which we teach in course viz, taking nsp, nst, csp, cst and row variables.

Pattern Hack : Always first Try to first print pattern by ignoring the value to be printed then accommodate your value in that pattern. For e.g.,

         1
         11
         111
         1001
         11111
         100001

View it as:-

         *
         **
         ***
         ****
         *****
         ******

Short Info about the variables:-

1. nsp (number of spaces)-> Number of spaces in very First Line of the pattern.
2. nst (number of stars)-> Number of stars in very first line of the pattern.
3. csp (counter of spaces)-> counter of spaces that will print the required number of spaces and will be initialized with 1 and incremented upto nsp.
4. cst (counter of stars)->  counter of spaces that will print the required number of stars and will be initialized with 1 and incremented upto nst.
5. rows -> It will be initialized with 1 and will go upto the total number of rows in the pattern.

In the given pattern,

  • First build an intuition that u need to work for first row and at the end of the loop need to do work for the next row.
  • For each row first you need to print your pattern in decreasing order then spaces and then the same pattern but in increasing order.
  • To build the whole pattern just repeat this work according to total number of rows. With this approach, things seems to work out easily.
 public static void pattern1(int N) {

        int nst = 1;
        int rows = 1;

        while (rows <= N) {

            int cst = 1;
            while (cst <= nst) {

                if (rows % 2 != 0 || cst == 1 || cst == nst) {
                    System.out.print(1);
                } else {
                    System.out.print("0");
                }

                cst++;

            }

            rows++;
            System.out.println();
            nst++;
        }

    }