Program to print Square inside a Square

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
Java
Python3
C#
PHP
// C++ program to print square inside// a square pattern#include <iostream>using namespace std;  // Function to print the pattern square// inside a squarevoid 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<<endl;    }} // Driver Codeint main(){    int n = 7;    printPattern(n);    return 0;} // This code is contributed by Shivam.Pradhan.
// C program to print square inside// a square pattern#include <stdio.h> // Function to print the pattern square// inside a squarevoid 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 Codeint main(){    int n = 7;    printPattern(n);    return 0;}
// Java program to print square inside// a square patternimport java.lang.*; class GFG {     // Function to print the pattern square// inside a squarestatic 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 codepublic static void main(String[] args) {    int n = 7;    printPattern(n);}} // This code is contributed by Anant Agarwal.
# Python program to# print square inside# a square pattern # Function to print# the pattern square# inside a squaredef 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# program to print square inside// a square patternusing 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// PHP program to print square inside// a square pattern // Function to print the pattern square// inside a squarefunction printPattern($n){    // 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(*)                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)
Mithun Kumar
Shivam.Pradhan
hasani
pattern-printing
C Programs
School Programming
pattern-printing
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Header files in C/C++ and its uses
C Program to read contents of Whole File
How to return multiple values from a function in C or C++?
C++ Program to check Prime Number
C Program to Swap two Numbers
Python Dictionary
Reverse a string in Java
Arrays in C/C++
Introduction To PYTHON
Interfaces in Java