Program to print the given number pattern
555555555
544444445
543333345
543222345
543212345
543222345
543333345
544444445
555555555

C Programming Language / Loop control in C Language

7872

Program:

/**
 * C program to print number pattern
 */

#include <stdio.h>

int main()
{
    int N, i, j;

    printf("Enter N: ");
    scanf("%d", &N);

    // First upper half of the pattern
    for(i=N; i>=1; i--)
    {
        // First inner part of upper half
        for(j=N; j>i; j--)
        {
            printf("%d", j);
        }

        // Second inner part of upper half
        for(j=1; j<=(i*2-1); j++)
        {
            printf("%d", i);
        }

        // Third inner part of upper half
        for(j=i+1; j<=N; j++)
        {
            printf("%d", j);
        }

        printf("\n");
    }

    // Second lower half of the pattern
    for(i=1; i<N; i++)
    {
        // First inner part of lower half
        for(j=N; j>i; j--)
        {
            printf("%d", j);
        }

        // Second inner part of lower half
        for(j=1; j<=(i*2-1); j++)
        {
            printf("%d", i+1);
        }

        // Third inner part of lower half
        for(j=i+1; j<=N; j++)
        {
            printf("%d", j);
        }

        printf("\n");
    }

    return 0;
}

Output:

Enter N: 5
555555555
544444445
543333345
543222345
543212345
543222345
543333345
544444445
555555555

Explanation:

Required knowledge

Basic C programming, Loop

Logic to print the given number pattern

Before you get into this confusing but interesting number pattern I recommend you to get yourself acquainted with the basics of number printing, learn the basic logic to print number pattern.

Once you get acquainted with basics of number pattern printing, have a careful eye on to above pattern. Let me help you, to make things easier lets divide this entire pattern into two big parts and six smaller pieces. The first upper half contains three parts

And the lower half of the pattern also contains three separate parts.

Now, both upper and lower half's of the pattern would be printed separately in two separate outer loops. Considering the first upper half of the pattern. The logic to print upper half of the pattern:

  1. To iterate through rows, initialize a loop from N till 1. (Note: We can also use loop from 1 to&

This Particular section is dedicated to Programs only. If you want learn more about C Programming Language. Then you can visit below links to get more depth on this subject.