HINT

Hi,

Well it took me a while to figure out as to how to approach this problem but as it turned out it is pretty straightforward. I divided the problem into two parts. First I printed out the elements up until the middle diagonal. And then the elements after that.

Here is the format of the numbers for 4 X 4 array

0,0 0,1 0,2 0,3

1,0 1,1 1,2 1,3

2,0 2,1 2,2 2,3

3,0 3,1 3,2 3,3

We can see a pattern here. First print the element 0,0.

Then -> 1,0 to 0,1 (i = 1 to i = 0 and j = 0 to j = 1)

Then -> 2,0 to 0,2 (i = 2 to i = 0 and j = 0 to j = 2)

Then -> 3,0 to 0,3 (i = 3 to i = 0 and j = 0 to j = 3)

So, basically as we are heading towards the main diagonal, we are increasing the value of i and at the same time running j from 0 to i.

Implementing this will get you the first 10 out of 16. For the rest of them, we have the same pattern again but this time its reverse

Then -> 3,1 to 1,3 (i = 3 to i = 1 and j = 1 to j = 3)

Then -> 3,2 to 2,3 (i = 3 to i = 2 and j = 2 to j = 3)

Then the last element 3,3

So, this just requires some clever manipulation of the for loops or while loops.