GeeksforGeeks App
Open App
Browser
Continue

# Program to print mirror image of Swastika Pattern

Given the number of rows and columns, print the mirror image of swastika pattern.
Note : The number of rows and columns should be same and an odd number. This will generate a perfect mirror image of swastika pattern.
Examples :

```Input : row = 5, col = 5
Output :
* * *   *
*   *
* * * * *
*   *
*   * * *

Input : row = 9, col = 9
Output :
* * * * *       *
*       *
*       *
*       *
* * * * * * * * *
*       *
*       *
*       *
*       * * * * *```

Below is the implementation to print the mirror image of swastika pattern.

## C++

 `// C++ implementation to print``// mirror image of swastika pattern.``#include ``using` `namespace` `std;`` ` `// function to print mirror image of swastika``void` `revswastika(``int` `row, ``int` `col) ``{``for` `(``int` `i = 0; i < row; i++) ``{``    ``for` `(``int` `j = 0; j < col; j++) {``         ` `    ``// for the upper half of the Swastika``    ``if` `(i < row / 2) {``         ` `        ``// checking if j < col/2``        ``if` `(j < col / 2) {``             ` `        ``// the first quadrant will have``        ``// stars till half the number of rows``        ``if` `(i == 0 && i < row / 2)``            ``cout << ``"*"` `<< ``" "``;``             ` `        ``// rest will have spaces``        ``else``            ``cout << ``" "` `<< ``" "``;``        ``}``         ` `        ``// the middle line of the swastika``        ``else` `if` `(j == col / 2)``        ``cout << ``"*"``;``        ``else` `{``             ` `        ``// the second quadrant of the``        ``// upper half will have spaces``        ``if` `(i < row / 2 && j < col - 1)``            ``cout << ``" "` `<< ``" "``;``        ``if` `(j == col - 1)``         ` `            ``// only the last column of the``            ``// second quadrant will have stars``            ``cout << ``" "`    `<< ``"*"``;``        ``}``    ``}`` ` `    ``// for the lower half of the Swastika``    ``// the middle horizontal line of the``    ``// Swastika will be at row/2``    ``else` `if` `(i == row / 2)``        ``cout << ``"*"` `<< ``" "``;``    ``else` `    ``{``        ``// for stars in the third quadrant``        ``// and the middle line of the lower Swastika``        ``if` `(j == col / 2 || j == 0)``        ``cout << ``"*"` `<< ``" "``;``        ``else` `if` `(i == row - 1)``        ``{``        ``// the last row's third quadrant``        ``// will have spaces and the fourth``        ``// will have stars``        ``if` `(j <= col / 2 || j == col)``            ``cout << ``" "` `<< ``" "``;``        ``else``            ``cout << ``"*"` `<< ``" "``;``        ``}``         ` `        ``// rest of the remaining portion``        ``// will have spaces all along``        ``else``        ``cout << ``" "` `<< ``" "``;``    ``}``    ``}``    ``cout << ``"\n"``;``}``}`` ` `// Driver code``int` `main()``{``   ``// same no. of rows and columns to``   ``// get the perfect mirror image``   ``// of swastika pattern.``   ``int` `row = 9, col = 9;`` ` `   ``// function calling``   ``revswastika(row, col);`` ` `   ``return` `0;``}`

## Java

 `// Java implementation to print``// mirror image of swastika pattern.`` ` `import` `java.io.*;`` ` `class` `GFG ``{``    ``// function to print mirror image of swastika``    ``static` `void` `revswastika(``int` `row, ``int` `col) ``    ``{``        ``for` `(``int` `i = ``0``; i < row; i++) ``        ``{``            ``for` `(``int` `j = ``0``; j < col; j++)``            ``{``                 ` `                ``// for the upper half of the Swastika``                ``if` `(i < row / ``2``) ``                ``{``                     ` `                    ``// checking if j < col/2``                    ``if` `(j < col / ``2``) ``                    ``{``                        ``// the first quadrant will have``                        ``// stars till half the number of rows``                        ``if` `(i == ``0` `&& i < row / ``2``)``                            ``System.out.print(``"*"` `+ ``" "``);``                             ` `                        ``// rest will have spaces``                        ``else``                            ``System.out.print(``" "` `+ ``" "``);``                    ``}``                     ` `                    ``// the middle line of the swastika``                    ``else` `if` `(j == col / ``2``)``                       ``System.out.print(``"*"``);``                    ``else``                    ``{``                        ``// the second quadrant of the``                        ``// upper half will have spaces``                        ``if` `(i < row / ``2` `&& j < col - ``1``)``                            ``System.out.print(``" "` `+ ``" "``);``                        ``if` `(j == col - ``1``)``                         ` `                            ``// only the last column of the``                            ``// second quadrant will have stars``                            ``System.out.print(``" "` `+ ``"*"``);``                    ``}``                ``}``         ` `                ``// for the lower half of the Swastika``                ``// the middle horizontal line of the``                ``// Swastika will be at row/2``                ``else` `if` `(i == row / ``2``)``                    ``System.out.print(``"*"` `+ ``" "``);``                ``else``                ``{``                    ``// for stars in the third quadrant``                    ``// and the middle line of the lower Swastika``                    ``if` `(j == col / ``2` `|| j == ``0``)``                        ``System.out.print( ``"*"` `+ ``" "``);``                    ``else` `if` `(i == row - ``1``)``                    ``{``                        ``// the last row's third quadrant``                        ``// will have spaces and the fourth``                        ``// will have stars``                        ``if` `(j <= col / ``2` `|| j == col)``                            ``System.out.print (``" "` `+ ``" "``);``                        ``else``                            ``System.out.print(``"*"` `+ ``" "``);``                    ``}``                     ` `                    ``// rest of the remaining portion``                    ``// will have spaces all along``                    ``else``                    ``System.out.print(``" "` `+ ``" "``);``                ``}``            ``}``            ``System.out.println();``        ``}``    ``}``     ` `    ``// Driver code``    ``public` `static` `void` `main (String[] args) ``    ``{``        ``// same no. of rows and columns to``        ``// get the perfect mirror image``        ``// of swastika pattern.``        ``int` `row = ``9``, col = ``9``;``         ` `        ``// function calling``        ``revswastika(row, col);``             ` `    ``}``}`` ` `// This code is contributed by vt_m.`

## Python3

 `# Python3 implementation to print``# mirror image of swastika pattern.`` ` `# Function to print mirror image of swastika``def` `revswastika(row, col):``     ` `    ``for` `i ``in` `range``(row): ``        ``for` `j ``in` `range``(col):``             ` `            ``# for the upper half of the Swastika``            ``if` `(i < row ``/``/` `2``):``                 ` `                ``# checking if j < col/2``                ``if` `(j < col ``/``/` `2``):``                     ` `                    ``# The first quadrant will have``                    ``# stars till half the number of rows``                    ``if` `(i ``=``=` `0` `and` `i < row ``/``/` `2``):``                        ``print``(``"* "``, end ``=` `"")``                         ` `                    ``# rest will have spaces``                    ``else``:``                        ``print``(``" "``, end ``=` `" "``)``                         ` `                ``# the middle line of the swastika``                ``elif` `(j ``=``=` `col ``/``/` `2``):``                    ``print``(``"*"``, end ``=` `"")``                ``else``:``                     ` `                    ``# the second quadrant of the``                    ``# upper half will have spaces``                    ``if` `(i < row ``/``/` `2` `and` `j < col ``-` `1``):``                        ``print``(``" "``, end ``=` `" "``)``                    ``if` `(j ``=``=` `col ``-` `1``):``                         ` `                        ``# only the last column of the``                        ``# second quadrant will have stars``                        ``print``(``" *"``, end ``=` `"")``                         ` `               ``# For the lower half of the Swastika``            ``# the middle horizontal line of the``            ``# Swastika will be at row/2``            ``elif` `(i ``=``=` `row ``/``/` `2``):``                ``print``(``"* "``, end ``=` `"")``            ``else``:``                 ` `                ``# For stars in the third quadrant and``                ``# the middle line of the lower Swastika``                ``if` `(j ``=``=` `col ``/``/` `2` `or` `j ``=``=` `0``):``                    ``print``(``"* "``, end ``=` `"")``                ``elif` `(i ``=``=` `row ``-` `1``):``                     ` `                    ``# last row's third quadrant will``                    ``# have spaces and fourth will have stars``                    ``if` `(j <``=` `col ``/``/` `2` `or` `j ``=``=` `col):``                        ``print``(``" "``, end ``=` `" "``)``                    ``else``:``                        ``print``(``"* "``, end ``=` `"")``                         ` `                ``# rest of the remaining portion``                ``# will have spaces all along``                ``else``:``                    ``print``(``" "``, end ``=` `" "``)``        ``print``()``         ` `# Driver code`` ` `# same no. of rows and columns to``# get the perfect mirror image``# of swastika pattern.``row ``=` `9``; col ``=` `9`` ` `revswastika(row, col)`` ` `# This code is contributed by Azkia Anam.`

## C#

 `// C# implementation to print mirror ``// image of swastika pattern.``using` `System;`` ` `class` `GFG {``     ` `    ``// function to print mirror image ``    ``// of swastika``    ``static` `void` `revswastika(``int` `row, ``int` `col) ``    ``{``        ``for` `(``int` `i = 0; i < row; i++) ``        ``{``            ``for` `(``int` `j = 0; j < col; j++)``            ``{``                 ` `                ``// for the upper half of the``                ``// Swastika``                ``if` `(i < row / 2) ``                ``{``                     ` `                    ``// checking if j < col/2``                    ``if` `(j < col / 2) ``                    ``{``                        ``// the first quadrant ``                        ``// will have stars till ``                        ``// half the number of``                        ``// rows``                        ``if` `(i == 0 && i < row / 2)``                            ``Console.Write(``"*"` `+ ``" "``);``                             ` `                        ``// rest will have spaces``                        ``else``                            ``Console.Write(``" "` `+ ``" "``);``                    ``}``                     ` `                    ``// the middle line of the``                    ``// swastika``                    ``else` `if` `(j == col / 2)``                        ``Console.Write(``"*"``);``                    ``else``                    ``{``                        ``// the second quadrant of ``                        ``// the upper half will ``                        ``// have spaces``                        ``if` `(i < row / 2 && j < col - 1)``                            ``Console.Write(``" "` `+ ``" "``);``                        ``if` `(j == col - 1)``                         ` `                            ``// only the last column ``                            ``// of the second quadrant ``                            ``// will have stars``                            ``Console.Write(``" "` `+ ``"*"``);``                    ``}``                ``}``         ` `                ``// for the lower half of the Swastika``                ``// the middle horizontal line of the``                ``// Swastika will be at row/2``                ``else` `if` `(i == row / 2)``                    ``Console.Write(``"*"` `+ ``" "``);``                ``else``                ``{``                    ``// for stars in the third quadrant``                    ``// and the middle line of the ``                    ``// lower Swastika``                    ``if` `(j == col / 2 || j == 0)``                        ``Console.Write( ``"*"` `+ ``" "``);``                    ``else` `if` `(i == row - 1)``                    ``{``                        ``// the last row's third quadrant``                        ``// will have spaces and the fourth``                        ``// will have stars``                        ``if` `(j <= col / 2 || j == col)``                            ``Console.Write(``" "` `+ ``" "``);``                        ``else``                            ``Console.Write(``"*"` `+ ``" "``);``                    ``}``                     ` `                    ``// rest of the remaining portion``                    ``// will have spaces all along``                    ``else``                        ``Console.Write(``" "` `+ ``" "``);``                ``}``            ``}``             ` `            ``Console.WriteLine();``        ``}``    ``}``     ` `    ``// Driver code``    ``public` `static` `void` `Main () ``    ``{``        ``// same no. of rows and columns to``        ``// get the perfect mirror image``        ``// of swastika pattern.``        ``int` `row = 9, col = 9;``         ` `        ``// function calling``        ``revswastika(row, col);``             ` `    ``}``}`` ` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output :

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

Time Complexity : O(row*col) ,where row is number of rows and col is number of columns in reverse swastika pattern.

Space Complexity : O(1) ,as we are not using any extra space.

My Personal Notes arrow_drop_up