Skip to content
Related Articles

Related Articles

Program to print window pattern
  • Difficulty Level : Easy
  • Last Updated : 22 Jan, 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: 

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

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to print the pattern 
// hollow square with plus inside it
// window pattern
#include <bits/stdc++.h>
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

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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)

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output :



* * * * * * * 
*     *     * 
*     *     * 
* * * * * * * 
*     *     * 
*     *     * 
* * * * * * *

Time complexity: O(n2

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :