Example:
Input N: 5
Output:
Required knowledge
Basic C programming, LoopLogic to print the given number pattern 1
Before I discuss about the logic of the given pattern I would recommend you to look to the pattern carefully for a minute to make things easier.Now, talking about the pattern it consists of N rows (where N is the total number of rows to be printed). Each row consists of exactly i * 2 - 1 columns (where i is the current row number).
Step-by-step descriptive logic:
- To iterate though rows, run an outer loop from 1 to N.
- To print columns, run an inner loop from 1 to i * 2 - 1 (where i is the current row number). Inside this loop print the value of j (where j is the current column number).
Program to print the given number pattern 1
/** * C program to print number pattern */ #include <stdio.h> int main() { int i, j, N; printf("Enter N: "); scanf("%d", &N); for(i=1; i<=N; i++) { //Logic to print numbers for(j=1; j<=(i*2-1); j++) { printf("%d", j); } printf("\n"); } return 0; }
Output
Enter N: 5
1
123
12345
1234567
123456789
1
123
12345
1234567
123456789
Screenshot 1
Logic to print the given number pattern 2
If you look to the pattern, you will find that above pattern is almost similar to the first pattern we just printed. The logic to print numbers will be same as first pattern we did, we only need to add the logic of printing spaces. To see or count total number of spaces per row you can hover on to the pattern. There are (N - i) * 2 spaces each row (where i is the current row number), as the first row contains (5 - 1) * 2 = 8 spaces, and second contains 6 spaces and so on last row contains 0 spaces.Step-by-step descriptive logic:
- To print spaces, run an inner loop from 1 to (N - i) * 2. Inside this loop print single blank space.
Program to print the given number pattern 2
/** * C program to print number pattern */ #include <stdio.h> int main() { int i, j, N; printf("Enter N: "); scanf("%d", &N); for(i=1; i<=N; i++) { //Logic to print spaces for(j=1; j<= ((N-i)*2); j++) { printf(" "); } //Logic to print numbers for(j=1; j<=(i*2-1); j++) { printf("%d", j); } printf("\n"); } return 0; }
Screenshot 2
Happy coding ;)