Skip to main content
added 432 characters in body
Source Link
AxelH
  • 319
  • 1
  • 10

JustYou are doing a simple ternary using the two loops :lot of if-condition to find what you need to print. This works but this is a verbose. You could find some logic in what you want to print.

       for(int x = 0; x < 10 ; ++x){
            for(int y = 0; y < 10 ; ++y){
                System.out.print(x < y ? 'o' : 'x');
            }
            System.out.println();
        }

ThisYour output is a simple square matrix that you want to split by it's diagonal. Here is the matrix :

  • The diagonal is when x = y.
  • if x < y : we are on the right -> O
  • if not x < y : we are on the left or on the diagonal -> X

And withhere is what you want to print (with the same spaces)

x    o    o    o    o    o    o    o    o    o
x    x    o    o    o    o    o    o    o    o
x    x    x    o    o    o    o    o    o    o
x    x    x    x    o    o    o    o    o    o
x    x    x    x    x    o    o    o    o    o
x    x    x    x    x    x    o    o    o    o
x    x    x    x    x    x    x    o    o    o
x    x    x    x    x    x    x    x    o    o
x    x    x    x    x    x    x    x    x    o
x    x    x    x    x    x    x    x    x    x

You can see some pattern here. Every place you want an ois on the right of the diagonal.

So you can write this as a condition depending on x and y like this :

  • if x < y : we are on the right of the diagonal-> O
  • if not x < y : we are on the left or on the diagonal -> X

You could use a if-else to print x or o but I like to do it on one line so I used use a simple ternary condition: (ternary is simple condition ? true statement : false statement)

       for(int x = 0; x < 10 ; ++x){
            for(int y = 0; y < 10 ; ++y){
                System.out.print(x < y ? 'o' : 'x');
            }
            System.out.println();
        }

Just a simple ternary using the two loops :

       for(int x = 0; x < 10 ; ++x){
            for(int y = 0; y < 10 ; ++y){
                System.out.print(x < y ? 'o' : 'x');
            }
            System.out.println();
        }

This is a simple square matrix that you want to split by it's diagonal. Here is the matrix :

  • The diagonal is when x = y.
  • if x < y : we are on the right -> O
  • if not x < y : we are on the left or on the diagonal -> X

And with the same spaces

x    o    o    o    o    o    o    o    o    o
x    x    o    o    o    o    o    o    o    o
x    x    x    o    o    o    o    o    o    o
x    x    x    x    o    o    o    o    o    o
x    x    x    x    x    o    o    o    o    o
x    x    x    x    x    x    o    o    o    o
x    x    x    x    x    x    x    o    o    o
x    x    x    x    x    x    x    x    o    o
x    x    x    x    x    x    x    x    x    o
x    x    x    x    x    x    x    x    x    x

You are doing a lot of if-condition to find what you need to print. This works but this is a verbose. You could find some logic in what you want to print.

Your output is a simple square matrix that you want to split by it's diagonal. Here is the matrix :

And here is what you want to print (with the same spaces)

x    o    o    o    o    o    o    o    o    o
x    x    o    o    o    o    o    o    o    o
x    x    x    o    o    o    o    o    o    o
x    x    x    x    o    o    o    o    o    o
x    x    x    x    x    o    o    o    o    o
x    x    x    x    x    x    o    o    o    o
x    x    x    x    x    x    x    o    o    o
x    x    x    x    x    x    x    x    o    o
x    x    x    x    x    x    x    x    x    o
x    x    x    x    x    x    x    x    x    x

You can see some pattern here. Every place you want an ois on the right of the diagonal.

So you can write this as a condition depending on x and y like this :

  • if x < y : we are on the right of the diagonal-> O
  • if not x < y : we are on the left or on the diagonal -> X

You could use a if-else to print x or o but I like to do it on one line so I used use a simple ternary condition: (ternary is simple condition ? true statement : false statement)

       for(int x = 0; x < 10 ; ++x){
            for(int y = 0; y < 10 ; ++y){
                System.out.print(x < y ? 'o' : 'x');
            }
            System.out.println();
        }
added 774 characters in body
Source Link
AxelH
  • 319
  • 1
  • 10
       for(int ix = 0; ix < 10 ; ++i++x){
            for(int jy = 0; jy < 10 ; ++j++y){
                System.out.print(jx <=< iy ? 'x''o' : 'o''x');
            }
            System.out.println();
        }

It'sThis is a simple square matrix that you want to split by ait's diagonal. The logic Here is simple. If x (aka i) > y (aka j), you are one the right ofmatrix :

   0x0   0-1   0-2   0-3   0-4   0-5   0-6   0-7   0-8   0-9
   1-0   1x1   1-2   1-3   1-4   1-5   1-6   1-7   1-8   1-9
   2-0   2-1   2x2   2-3   2-4   2-5   2-6   2-7   2-8   2-9
   3-0   3-1   3-2   3x3   3-4   3-5   3-6   3-7   3-8   3-9
   4-0   4-1   4-2   4-3   4x4   4-5   4-6   4-7   4-8   4-9
   5-0   5-1   5-2   5-3   5-4   5x5   5-6   5-7   5-8   5-9
   6-0   6-1   6-2   6-3   6-4   6-5   6x6   6-7   6-8   6-9
   7-0   7-1   7-2   7-3   7-4   7-5   7-6   7x7   7-8   7-9
   8-0   8-1   8-2   8-3   8-4   8-5   8-6   8-7   8x8   8-9
   9-0   9-1   9-2   9-3   9-4   9-5   9-6   9-7   9-8   9x9

I've highlighted the diagonal by using a x instead of an -.

  • The diagonal is when x = y.
  • if x < y : we are on the right -> O
  • if not x < y : we are on the left or on the diagonal -> X

And with the same spaces

x    o    o    o    o    o    o    o    o    o
x    x    o    o    o    o    o    o    o    o
x    x    x    o    o    o    o    o    o    o
x    x    x    x    o    o    o    o    o    o
x    x    x    x    x    o    o    o    o    o
x    x    x    x    x    x    o    o    o    o
x    x    x    x    x    x    x    o    o    o
x    x    x    x    x    x    x    x    o    o
x    x    x    x    x    x    x    x    x    o
x    x    x    x    x    x    x    x    x    x
       for(int i = 0; i < 10 ; ++i){
            for(int j = 0; j < 10 ; ++j){
                System.out.print(j <= i ? 'x' : 'o');
            }
            System.out.println();
        }

It's a simple matrix that you want to split by a diagonal. The logic is simple. If x (aka i) > y (aka j), you are one the right of the diagonal.

       for(int x = 0; x < 10 ; ++x){
            for(int y = 0; y < 10 ; ++y){
                System.out.print(x < y ? 'o' : 'x');
            }
            System.out.println();
        }

This is a simple square matrix that you want to split by it's diagonal. Here is the matrix :

   0x0   0-1   0-2   0-3   0-4   0-5   0-6   0-7   0-8   0-9
   1-0   1x1   1-2   1-3   1-4   1-5   1-6   1-7   1-8   1-9
   2-0   2-1   2x2   2-3   2-4   2-5   2-6   2-7   2-8   2-9
   3-0   3-1   3-2   3x3   3-4   3-5   3-6   3-7   3-8   3-9
   4-0   4-1   4-2   4-3   4x4   4-5   4-6   4-7   4-8   4-9
   5-0   5-1   5-2   5-3   5-4   5x5   5-6   5-7   5-8   5-9
   6-0   6-1   6-2   6-3   6-4   6-5   6x6   6-7   6-8   6-9
   7-0   7-1   7-2   7-3   7-4   7-5   7-6   7x7   7-8   7-9
   8-0   8-1   8-2   8-3   8-4   8-5   8-6   8-7   8x8   8-9
   9-0   9-1   9-2   9-3   9-4   9-5   9-6   9-7   9-8   9x9

I've highlighted the diagonal by using a x instead of an -.

  • The diagonal is when x = y.
  • if x < y : we are on the right -> O
  • if not x < y : we are on the left or on the diagonal -> X

And with the same spaces

x    o    o    o    o    o    o    o    o    o
x    x    o    o    o    o    o    o    o    o
x    x    x    o    o    o    o    o    o    o
x    x    x    x    o    o    o    o    o    o
x    x    x    x    x    o    o    o    o    o
x    x    x    x    x    x    o    o    o    o
x    x    x    x    x    x    x    o    o    o
x    x    x    x    x    x    x    x    o    o
x    x    x    x    x    x    x    x    x    o
x    x    x    x    x    x    x    x    x    x
fixed typo
Source Link
ChrisWue
  • 20.4k
  • 4
  • 42
  • 107

Just a simple ternary using the two loops :

       for(int i = 0; i < 10 ; ++i){
            for(int j = 0; j < 10 ; ++j){
                System.out.print(j <= i ? 'x' : 'o');
            }
            System.out.println();
        }

It's a simple matrix that you want to split by a diagonal. The logic is simple. If x (aka i) > <y (aka j), you are one the right of the diagonal.

Just a simple ternary using the two loops :

       for(int i = 0; i < 10 ; ++i){
            for(int j = 0; j < 10 ; ++j){
                System.out.print(j <= i ? 'x' : 'o');
            }
            System.out.println();
        }

It's a simple matrix that you want to split by a diagonal. The logic is simple. If x (aka i) > < (aka j), you are one the right of the diagonal.

Just a simple ternary using the two loops :

       for(int i = 0; i < 10 ; ++i){
            for(int j = 0; j < 10 ; ++j){
                System.out.print(j <= i ? 'x' : 'o');
            }
            System.out.println();
        }

It's a simple matrix that you want to split by a diagonal. The logic is simple. If x (aka i) > y (aka j), you are one the right of the diagonal.

Source Link
AxelH
  • 319
  • 1
  • 10
Loading