GeeksforGeeks App
Open App
Browser
Continue

# Program to print window pattern

Print the pattern in which there is a hollow square and plus sign inside it. The pattern will be as per the n i.e. number of rows given as shown in the example.

Examples:

```Input : 6
Output : * * * * * *
*   * *   *
* * * * * *
* * * * * *
*   * *   *
* * * * * *

Input : 7
Output : * * * * * * *
*     *     *
*     *     *
* * * * * * *
*     *     *
*     *     *
* * * * * * *```

Approach:

• We will start a for loop up till n and inside this also there is for loop up till n.
• In this simply we have to check if the row is first or last or column is first or last, then print “*”.
• Now we have to check for the middle row and column.
• So when n is odd, we will have a middle row and column and if row or column is in middle then we will print “*”.
• If n is even, then rows or columns if equal to these values n/2 and (n/2)+1, then we will print “*”.
• Else everywhere we have to print ” “(space).

Below is the implementation.

## C++14

 `// C++ program to print the pattern ``// hollow square with plus inside it``// window pattern``#include ``using` `namespace` `std;`` ` `// Function to print pattern n means ``// number of rows which we want``void` `window_pattern (``int` `n)``{``    ``int` `c, d;``     ` `    ``// If n is odd then we will have``    ``// only one middle element``    ``if` `(n % 2 != 0)``    ``{``        ``c = (n / 2) + 1;``        ``d = 0;``    ``}`` ` `    ``// If n is even then we will have two``    ``// values``    ``else``    ``{``        ``c = (n / 2) + 1;``        ``d = n / 2 ;``    ``}`` ` `    ``for``(``int` `i = 1; i <= n; i++)``    ``{``        ``for``(``int` `j = 1; j <= n; j++)``        ``{``          ` `            ``// If i,j equals to corner row or``            ``// column then "*"``            ``if` `(i == 1 || j == 1 ||``                ``i == n || j == n)``                ``cout << ``"* "``;`` ` `            ``else``            ``{``              ` `                ``// If i,j equals to the middle ``                ``// row or column then  "*"``                ``if` `(i == c || j == c)``                    ``cout << ``"* "``;`` ` `                ``else` `if` `(i == d || j == d)``                    ``cout << ``"* "``;`` ` `                ``else``                    ``cout << ``"  "``;``            ``}``        ``}``        ``cout << ``'\n'``;``    ``}``}`` ` `// Driver Code``int` `main()``{``    ``int` `n = 7;``  ` `    ``window_pattern(n);``    ``return` `0;   ``}`` ` `// This code is contributed by himanshu77`

## Java

 `// Java program to print the pattern ``// hollow square with plus inside it``// window pattern``class` `GFG``{` `  ``// Function to print pattern n means ``  ``// number of rows which we want``  ``static` `void` `window_pattern (``int` `n)``  ``{``    ``int` `c, d;` `    ``// If n is odd then we will have``    ``// only one middle element``    ``if` `(n % ``2` `!= ``0``)``    ``{``      ``c = (n / ``2``) + ``1``;``      ``d = ``0``;``    ``}` `    ``// If n is even then we will have``    ``// two values``    ``else``    ``{``      ``c = (n / ``2``) + ``1``;``      ``d = n / ``2` `;``    ``} ``    ``for``(``int` `i = ``1``; i <= n; i++)``    ``{``      ``for``(``int` `j = ``1``; j <= n; j++)``      ``{` `        ``// If i,j equals to corner row``        ``// or column then "*"``        ``if` `(i == ``1` `|| j == ``1` `||``            ``i == n || j == n)``          ``System.out.print(``"* "``);          ``        ``else``        ``{` `          ``// If i,j equals to the middle ``          ``// row or column then  "*"``          ``if` `(i == c || j == c)``            ``System.out.print(``"* "``);``          ``else` `if` `(i == d || j == d)``            ``System.out.print(``"* "``);``          ``else``            ``System.out.print(``"  "``);``        ``}``      ``}``      ``System.out.println();``    ``}``  ``}` `  ``// Driver code``  ``public` `static` `void` `main(String[] args)``  ``{``    ``int` `n = ``7``;``    ``window_pattern(n);``  ``}``}` `// This code is contributed by divyeshrabadiya07`

## Python3

 `# Python3 program to print the pattern``# hollow square with plus inside it``# window pattern`  `# function to print pattern n means``# number of rows which we want``def` `window_pattern(n):``    ` `    ``# if n is odd then we will have``    ``# only one middle element``    ``if` `n ``%` `2` `!``=` `0``:``        ``c ``=` `( n ``/``/` `2` `) ``+` `1``        ``d ``=` `0``        ` `    ``# if n is even then we will have two``    ``# values``    ``else``:``        ``c ``=` `( n ``/``/` `2` `) ``+` `1``        ``d ``=` `( n ``/``/` `2` `)` `    ``for` `i ``in` `range``( ``1` `, n ``+` `1` `):``        ``for` `j ``in` `range``( ``1` `, n ``+` `1` `):``            ` `            ``# if i,j equals to corner row or``            ``# column then "*"``            ``if` `i ``=``=` `1` `or` `j ``=``=` `1` `or` `i ``=``=` `n ``or` `j ``=``=` `n:``                ``print``(``"*"``,end``=``" "``)``                ` `            ``else``:``                ` `                ``# if i,j equals to the middle row``                ``# or column then  "*"``                ``if` `i ``=``=` `c ``or` `j ``=``=` `c:``                    ``print``(``"*"``,end``=``" "``)``                    ` `                ``elif` `i ``=``=` `d ``or` `j ``=``=` `d:``                    ``print``(``"*"``,end``=``" "``)``                ` `                ``else``:``                    ``print``(``" "``,end``=``" "``)``        ` `        ``print``()`  `# Driver Code``if` `__name__ ``=``=` `"__main__"``:``    ``n ``=` `7``    ``window_pattern(n)`

## C#

 `// C# program to print the pattern ``// hollow square with plus inside it``// window pattern``using` `System;` `class` `GFG{` `// Function to print pattern n means ``// number of rows which we want``static` `void` `window_pattern (``int` `n)``{``    ``int` `c, d;``    ` `    ``// If n is odd then we will have``    ``// only one middle element``    ``if` `(n % 2 != 0)``    ``{``        ``c = (n / 2) + 1;``        ``d = 0;``    ``}``  ` `    ``// If n is even then we will have``    ``// two values``    ``else``    ``{``        ``c = (n / 2) + 1;``        ``d = n / 2 ;``    ``}``  ` `    ``for``(``int` `i = 1; i <= n; i++)``    ``{``        ``for``(``int` `j = 1; j <= n; j++)``        ``{``            ` `            ``// If i,j equals to corner row``            ``// or column then "*"``            ``if` `(i == 1 || j == 1 ||``                ``i == n || j == n)``                ``Console.Write(``"* "``);``                ` `            ``else``            ``{``                ` `                ``// If i,j equals to the middle ``                ``// row or column then  "*"``                ``if` `(i == c || j == c)``                    ``Console.Write(``"* "``);``  ` `                ``else` `if` `(i == d || j == d)``                    ``Console.Write(``"* "``);``  ` `                ``else``                    ``Console.Write(``"  "``);``            ``}``        ``}``        ``Console.WriteLine();``    ``}``}` `// Driver code``static` `void` `Main()``{``    ``int` `n = 7;``    ` `    ``window_pattern(n);``}``}` `// This code is contributed by divyesh072019`

## Javascript

 ``

Output :

```* * * * * * *
*     *     *
*     *     *
* * * * * * *
*     *     *
*     *     *
* * * * * * *```

Time complexity: O(n2

Auxiliary space: O(1) because it is using constant space for variables

My Personal Notes arrow_drop_up