# Program to print window pattern

• Difficulty Level : Easy
• Last Updated : 28 Apr, 2021

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:

Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12.

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

```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

My Personal Notes arrow_drop_up