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 <bits/stdc++.h> 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
<?php // PHP code to print Mirror // image of swastika pattern. // function to print // mirror image of swastika function revswastika( $row , $col ) { for ( $i = 0; $i < $row ; $i ++) { for ( $j = 0; $j < $col ; $j ++) { // for the upper half // of the Swastika if ( $i < floor ( $row / 2)) { // checking if j < $col/2 if ( $j < floor ( $col / 2)) { // the first quadrant will // have stars till half the // number of $rows if ( $i == 0 && $i < floor ( $row / 2)) echo "*" . " " ; // rest will have spaces else echo " " . " " ; } // the middle line // of the swastika else if ( $j == floor ( $col / 2)) echo "*" ; else { // the second quadrant of the // upper half will have spaces if ( $i < floor ( $row / 2) && $j < $col - 1) echo " " . " " ; if ( $j == $col - 1) // only the last $column // of the second quadrant // will have stars echo " " . "*" ; } } // for the lower half of the Swastika // the middle horizontal line of the // Swastika will be at $row/2 else if ( $i == floor ( $row / 2)) echo "*" . " " ; else { // for stars in the third // quadrant and the middle // line of the lower // Swastika if ( $j == floor ( $col / 2) || $j == 0) echo "*" . " " ; else if ( $i == $row - 1) { // the last $row's third // quadrant will have spaces // and the fourth will have // stars if ( $j <= floor ( $col / 2) || $j == $col ) echo " " . " " ; else echo "*" . " " ; } // rest of the remaining // portion will have spaces // all along else echo " " . " " ; } } echo "\n" ; } } // Driver code // same no. of $rows and $columns // to get the perfect mirror image // of swastika pattern. $row = 9; $col = 9; // function calling revswastika( $row , $col ); // This code is contributed by mits ?> |
Javascript
<script> // JavaScript implementation to print // mirror image of swastika pattern. // function to print mirror image of swastika function revswastika(row, col) { for ( var i = 0; i < row; i++) { for ( var j = 0; j < col; j++) { // for the upper half of the Swastika if (i < Math.floor(row / 2)) { // checking if j < col/2 if (j < Math.floor(col / 2)) { // the first quadrant will have // stars till half the number of rows if (i == 0 && i < Math.floor(row / 2)) document.write( "*" + " " ); // rest will have spaces else document.write( " " + " " ); } // the middle line of the swastika else if (j == Math.floor(col / 2)) document.write( "*" ); else { // the second quadrant of the // upper half will have spaces if (i < Math.floor(row / 2) && j < col - 1) document.write( " " + " " ); if (j == col - 1) // only the last column of the // second quadrant will have stars document.write( " " + "*" ); } } // for the lower half of the Swastika // the middle horizontal line of the // Swastika will be at row/2 else if (i == Math.floor(row / 2)) document.write( "*" + " " ); else { // for stars in the third quadrant // and the middle line of the lower Swastika if (j == Math.floor(col / 2) || j == 0) document.write( "*" + " " ); else if (i == row - 1) { // the last row's third quadrant // will have spaces and the fourth // will have stars if (j <= Math.floor(col / 2) || j == col) document.write( " " + " " ); else document.write( "*" + " " ); } // rest of the remaining portion // will have spaces all along else document.write( " " + " " ); } } document.write( "<br>" ); } } // Driver code // same no. of rows and columns to // get the perfect mirror image // of swastika pattern. var row = 9, col = 9; // function calling revswastika(row, col); // This code is contributed by rdtank. </script> |
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.
Please Login to comment...