Skip to content
Related Articles

Related Articles

Save Article
Improve Article
Save Article
Like Article

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

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




<script>
 
      // JavaScript 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
      function window_pattern(n)
      {
        var c, d;
 
        // If n is odd then we will have
        // only one middle element
        if (n % 2 != 0) {
          c = parseInt(n / 2 + 1);
          d = 0;
        }
 
        // If n is even then we will have two
        // values
        else {
          c = parseInt(n / 2 + 1);
          d = parseInt(n / 2);
        }
 
        for (var i = 1; i <= n; i++) {
          for (var j = 1; j <= n; j++) {
            // If i,j equals to corner row or
            // column then "*"
            if (i == 1 || j == 1 || i == n || j == n)
            document.write("* ");
            else {
              // If i,j equals to the middle
              // row or column then "*"
              if (i == c || j == c)
              document.write("* ");
              else if (i == d || j == d)
              document.write("* ");
              else
              document.write("   ");
            }
          }
          document.write("<br>");
        }
      }
 
      // Driver Code
      var n = 7;
       
      window_pattern(n);
       
</script>

Output :

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

Time complexity: O(n2




My Personal Notes arrow_drop_up
Recommended Articles
Page :