# Program to print the given H Pattern

• Difficulty Level : Medium
• Last Updated : 27 Apr, 2021

Given an integer N, the task is to print the Alphabet H Pattern as given below:

```1       N
2       *
3       3
*       2
N * 3 2 1
*       2
3       3
2       *
1       N```

Examples:

```Input: N = 3
Output:
1   3
2   2
3 2 1
2   2
1   3

Input: N = 4
Output:
1     4
2     3
3     2
4 3 2 1
3     2
2     3
1     4```

Approach:

• Print the Left value and leave 2 * (index – 1) blank spaces & print Right value.
• Print the Nth row with N to 1 number.
• Repeat step one for (2 * N) – 1 time to print the desired H pattern.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function to print the desired``// Alphabet H Pattern``void` `alphabetPattern(``int` `N)``{` `    ``// Declaring the values of left,``    ``// middle, right side``    ``int` `left = 0, middle = N - 1, right = N + 1;` `    ``// Main Row Loop``    ``for` `(``int` `row = 0; row < 2 * N - 1; row++) {` `        ``// Condition for the left Values``        ``if` `(row < N)``            ``cout << ++left;``        ``else``            ``cout << --left;` `        ``// Loop for the middle values``        ``for` `(``int` `col = 1; col < N - 1; col++) {` `            ``// Condition for the middleValues``            ``if` `(row != N - 1)` `                ``// Two spaces for perfect alignment``                ``cout << ``" "``                     ``<< ``" "``;``            ``else``                ``cout << ``" "` `<< middle--;``        ``}` `        ``// Condition for the right Values``        ``if` `(row < N)``            ``cout << ``" "` `<< --right;``        ``else``            ``cout << ``" "` `<< ++right;``        ``cout << endl;``    ``}``}` `// Driver Code``int` `main()``{``    ``// Size of the Pattern``    ``int` `N = 4;` `    ``alphabetPattern(N);` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``class` `GFG``{``// Function to print the desired``// Alphabet H Pattern``static` `void` `alphabetPattern(``int` `N)``{` `    ``// Declaring the values of left,``    ``// middle, right side``    ``int` `left = ``0``, middle = N - ``1``, right = N + ``1``;` `    ``// Main Row Loop``    ``for` `(``int` `row = ``0``; row < ``2` `* N - ``1``; row++) {` `        ``// Condition for the left Values``        ``if` `(row < N)``            ``System.out.print( ++left);``        ``else``            ``System.out.print(--left);` `        ``// Loop for the middle values``        ``for` `(``int` `col = ``1``; col < N - ``1``; col++) {` `            ``// Condition for the middleValues``            ``if` `(row != N - ``1``)` `                ``// Two spaces for perfect alignment``            ``System.out.print( ``"  "``);``                    ` `            ``else``                ``System.out.print( ``" "` `+middle--);``        ``}` `        ``// Condition for the right Values``        ``if` `(row < N)``            ``System.out.print( ``" "`  `+--right);``        ``else``            ``System.out.print( ``" "` `+ ++right);``        ``System.out.println();``    ``}``}` `// Driver Code``    ``public` `static` `void` `main(String[] args) {` `    ``// Size of the Pattern``    ``int` `N = ``4``;` `    ``alphabetPattern(N);``// This code is contributed by Rajput-Ji` `}``}`

## Python3

 `# Python3 implementation of the approach` `# Function to print the desired``# Alphabet H Pattern``def` `alphabetPattern(N):` `    ``# Declaring the values of left,``    ``# middle, right side``    ``left, middle, right ``=` `0``, N ``-` `1``, N ``+` `1` `    ``# Main Row Loop``    ``for` `row ``in` `range``(``0``, ``2` `*` `N ``-` `1``):` `        ``# Condition for the left Values``        ``if` `row < N:``            ``left ``+``=` `1``            ``print``(left, end ``=` `"")``        ``else``:``            ``left ``-``=` `1``            ``print``(left, end ``=` `"")` `        ``# Loop for the middle values``        ``for` `col ``in` `range``(``1``, N ``-` `1``):` `            ``# Condition for the middleValues``            ``if` `row !``=` `N ``-` `1``:` `                ``# Two spaces for perfect alignment``                ``print``(``" "``, end ``=` `" "``)``                ` `            ``else``:``                ``print``(``" "` `+` `str``(middle), end ``=` `"")``                ``middle ``-``=` `1` `        ``# Condition for the right Values``        ``if` `row < N:``            ``right ``-``=` `1``            ``print``(``" "` `+` `str``(right), end ``=` `"")``        ``else``:``            ``right ``+``=` `1``            ``print``(``" "` `+` `str``(right), end ``=` `"")``        ` `        ``print``()` `# Driver Code``if` `__name__ ``=``=` `"__main__"``:` `    ``# Size of the Pattern``    ``N ``=` `4``    ``alphabetPattern(N)` `# This code is contributed by Rituraj Jain`

## C#

 `// C# implementation of the approach``using` `System;` `class` `GFG``{``    ` `// Function to print the desired``// Alphabet H Pattern``static` `void` `alphabetPattern(``int` `N)``{` `    ``// Declaring the values of left,``    ``// middle, right side``    ``int` `left = 0, middle = N - 1, right = N + 1;` `    ``// Main Row Loop``    ``for` `(``int` `row = 0; row < 2 * N - 1; row++)``    ``{` `        ``// Condition for the left Values``        ``if` `(row < N)``            ``Console.Write( ++left);``        ``else``            ``Console.Write(--left);` `        ``// Loop for the middle values``        ``for` `(``int` `col = 1; col < N - 1; col++)``        ``{` `            ``// Condition for the middleValues``            ``if` `(row != N - 1)` `                ``// Two spaces for perfect alignment``            ``Console.Write( ``" "``);``                    ` `            ``else``                ``Console.Write( ``" "` `+ middle--);``        ``}` `        ``// Condition for the right Values``        ``if` `(row < N)``            ``Console.Write( ``" "` `+ --right);``        ``else``            ``Console.Write( ``" "` `+ ++right);``        ``Console.WriteLine();``    ``}``}` `// Driver Code``public` `static` `void` `Main(String[] args)``{` `    ``// Size of the Pattern``    ``int` `N = 4;``    ``alphabetPattern(N);``}``}` `// This code is contributed by``// PrinciRaj1992`

## PHP

 ``

## Javascript

 ``
Output:
```1     4
2     3
3     2
4 3 2 1
3     2
2     3
1     4```

My Personal Notes arrow_drop_up