# Program to print Square inside a Square

• Difficulty Level : Hard
• Last Updated : 22 Jun, 2022

Given a number N, print a hollow square of side with N asterisks(‘*’), and inside it print a hollow square of side N-4 asterisks(‘*’).
Examples :

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

Input :9
Output :
*********
*       *
* ***** *
* *   * *
* *   * *
* *   * *
* ***** *
*       *
*********```

The idea is to run two nested loops from 1 to n for rows and columns and now to check for conditions when to print an asterisk(‘*’) and when to print space(‘ ‘). The condition for printing asterisks will be:

```// This will print asterisks on the boundary
(i == 1 || i == n || j == 1 || j == n)

// This will print the asterisks on the boundary
// of inner square
(i >= 3 && i = 3 && j <= n - 2) &&
(i == 3 || i == n - 2 || j == 3 || j == n - 2))```

All of the indexes which do not satisfy the above condition will contain space.
Below is the implementation of above idea:

## C++

 `// C++ program to print square inside``// a square pattern``#include ``using` `namespace` `std;`  `// Function to print the pattern square``// inside a square``void` `printPattern(``int` `n)``{``    ``int` `i, j;``    ` `    ``// To access rows of the square``    ``for` `(i = 1; i <= n; i++)``    ``{``        ``// To access columns of the square``        ``for` `(j = 1; j <= n; j++)``        ``{``    ` `            ``// For printing the required square pattern``            ``if` `((i == 1 || i == n || j == 1 || j == n) ||``                ``(i >= 3 && i <= n - 2 && j >= 3 && j <= n - 2) &&``                 ``(i == 3 || i == n - 2 || j == 3 || j == n - 2))``            ``{``                ``// Prints star(*)``                ``cout<<``"*"``;``            ``}``            ``else``            ``{``                ``// Prints space(" ")``                ``cout<<``" "``;``            ``}``        ``}``    ` `        ``cout<

## C

 `// C program to print square inside``// a square pattern``#include ` `// Function to print the pattern square``// inside a square``void` `printPattern(``int` `n)``{``    ``int` `i, j;``    ` `    ``// To access rows of the square``    ``for` `(i = 1; i <= n; i++)``    ``{``        ``// To access columns of the square``        ``for` `(j = 1; j <= n; j++)``        ``{``    ` `            ``// For printing the required square pattern``            ``if` `((i == 1 || i == n || j == 1 || j == n) ||``                ``(i >= 3 && i <= n - 2 && j >= 3 && j <= n - 2) &&``                 ``(i == 3 || i == n - 2 || j == 3 || j == n - 2))``            ``{``                ``// Prints star(*)``                ``printf``(``"*"``);``            ``}``            ``else``            ``{``                ``// Prints space(" ")``                ``printf``(``" "``);``            ``}``        ``}``    ` `        ``printf``(``"\n"``);``    ``}``}` `// Driver Code``int` `main()``{``    ``int` `n = 7;``    ``printPattern(n);``    ``return` `0;``}`

## Java

 `// Java program to print square inside``// a square pattern``import` `java.lang.*;` `class` `GFG {``    ` `// Function to print the pattern square``// inside a square``static` `void` `printPattern(``int` `n) {` `    ``// To access rows of the square``    ``for` `(``int` `i = ``1``; i <= n; i++) {``        ` `    ``// To access columns of the square``    ``for` `(``int` `j = ``1``; j <= n; j++) {` `        ``/*** For printing the required square pattern ***/``        ``if` `((i == ``1` `|| i == n || j == ``1` `|| j == n) ||``            ``(i >= ``3` `&& i <= n - ``2` `&& j >= ``3` `&& j <= n - ``2``) &&``                ``(i == ``3` `|| i == n - ``2` `|| j == ``3` `|| j == n - ``2``))``        ``{``        ``// Prints star(*)           ``        ``System.out.print(``"*"``);``        ``}``        ``else``        ``{``        ``// Prints space(" ")   ``        ``System.out.print(``" "``);``        ``}``    ``}` `    ``System.out.print(``"\n"``);``    ``}``}` `// Driver code``public` `static` `void` `main(String[] args) {``    ``int` `n = ``7``;``    ``printPattern(n);``}``}` `// This code is contributed by Anant Agarwal.`

## Python3

 `# Python program to``# print square inside``# a square pattern` `# Function to print``# the pattern square``# inside a square``def` `printPattern(n):``    ` `    ``# To access rows of the square``    ``for` `i ``in` `range``(``1``,n``+``1``):``    ` `        ``# To access columns of the square``        ``for` `j ``in` `range``(``1``,n``+``1``):``        ` `            ``# For printing the required square pattern``            ``if` `((i ``=``=` `1` `or` `i ``=``=` `n ``or` `j ``=``=` `1` `or` `j ``=``=` `n) ``or``                ``(i >``=` `3` `and` `i <``=` `n ``-` `2` `and` `j >``=` `3` `and` `j <``=` `n ``-` `2``) ``and``                    ``(i ``=``=` `3` `or` `i ``=``=` `n ``-` `2` `or` `j ``=``=` `3` `or` `j ``=``=` `n ``-` `2``)):``            ` `                ``print``(``"*"``,end``=``"") ``# Prints star(*)``            ` `            ``else``:``            ` `                ``print``(``" "``,end``=``"``") # Prints space("` `")``            ` `        ``print``()``        `  `# Driver code` `n ``=` `7`  `printPattern(n)` `# This code is contributed``# by Anant Agarwal.`

## C#

 `// C# program to print square inside``// a square pattern``using` `System;` `class` `GFG {``    ` `    ``// Function to print the pattern square``    ``// inside a square``    ``static` `void` `printPattern(``int` `n) {``    ` `        ``// To access rows of the square``        ``for` `(``int` `i = 1; i <= n; i++) {``            ` `            ``// To access columns of the square``            ``for` `(``int` `j = 1; j <= n; j++) {``        ` `                ``/*** For printing the required``                     ``square pattern ***/``                ``if` `((i == 1 || i == n || j == 1``                       ``|| j == n) || (i >= 3 &&``                        ``i <= n - 2 && j >= 3 &&``                      ``j <= n - 2) && (i == 3 ||``                        ``i == n - 2 || j == 3 ||``                                   ``j == n - 2))``                ``{``                    ` `                    ``// Prints star(*)    ``                    ``Console.Write(``"*"``);``                ``}``                ``else``                ``{``                    ` `                    ``// Prints space(" ")``                    ``Console.Write(``" "``);``                ``}``            ``}``        ` `            ``Console.WriteLine();``        ``}``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main() {``        ` `        ``int` `n = 7;``        ` `        ``printPattern(n);``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 `= 3 && ``\$i` `<= ``\$n` `- 2 &&``                ``\$j` `>= 3 && ``\$j` `<= ``\$n` `- 2) &&``                ``(``\$i` `== 3 || ``\$i` `== ``\$n` `- 2 ||``                ``\$j` `== 3 || ``\$j` `== ``\$n` `- 2))``            ``{``                ``// Prints star(*)``                ``echo` `"*"``;``            ``}``            ``else``            ``{``                ``// Prints space " "``                ``echo` `" "``;``            ``}``        ``}``    ` `        ``echo``"\n"``;``    ``}``}` `// Driver Code``\$n` `= 7;``printPattern(``\$n``);` `// This code is contributed by Mithun Kumar``?>`

Output :

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

Time Complexity: O(n2)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up