**Example:**

Input N: 5

Output:

### Required knowledge

Basic C programming, Loop### Logic to print the given number pattern

If at first the pattern seems confusing. Take your time and have a closer look to the pattern for a minute. You might find below things about the pattern.- It contains of total N rows (where N is the total number of rows to be printed).
- To make things easier you can divide the pattern in two parts.
- Now, when you look to the first part of the pattern, you will find that it starts from 3
^{rd}row and goes till 5^{th}row. Hence the inner loop formation to print this part will be something like for(j=3; j<=i; j++). - The second pattern is an odd pattern, whose first column starts with an odd number. I have already explained the logic to print this pattern in one of my previous post.

It contains total N rows and each row contains exactly i columns (where i is the current row number. Each column start with a value (i * 2) - 1. Hence the second inner loop formation for this part will be for(j=(i * 2)-1; j>=i; j--).

### Program to print the given pattern

/** * C program to print the given number pattern */ #include <stdio.h> int main() { int i, j, value, N; printf("Enter rows: "); scanf("%d", &N); for(i=1; i<=N; i++) { value = i + 1; // Prints the first part of pattern for(j=3; j<=i; j++) { printf("%d ", value); value++; } // Prints the second part of pattern for(j=(i*2)-1; j>=i; j--) { printf("%d ", j); } printf("\n"); } return 0; }

Output

Enter rows: 5

1

3 2

4 5 4 3

5 6 7 6 5 4

6 7 8 9 8 7 6 5

1

3 2

4 5 4 3

5 6 7 6 5 4

6 7 8 9 8 7 6 5

### Screenshot

Happy coding ;)