Java Program to Print Mirror Upper Star Triangle Pattern
Last Updated :
17 Mar, 2023
Improve
The pattern has two parts - both mirror reflections of each other. The base of the triangle has to be at the bottom of the imaginary mirror and the tip at the top.
Illustration:
Input: size = 7 Output: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Approach:
Divide pattern into sub-patterns
- Divide this into two parts
- Upper part
- Lower part
- Both parts are a mirror reflection of each other. And each part comprises 2 triangles. Therefore, In total, we have to print 4 triangles to get the desired pattern.
Example 1: Upper Part
// Java Program to Print Upper Part of Mirror Upper Star
// Triangle Pattern
// Importing input output classes
import java.io.*;
// Main Class
class GFG {
// Method 1
// To print upper part of the pattern
private static void displayUpperPart(int size)
{
// Declaring variables for rows and columns
// respectively
int m, n;
// Outer loop for rows
for (m = size - 1; m >= 0; m--) {
// Inner loop 1
// to print triangle 1
for (n = 0; n < m; n++) {
// Printing whitespace
System.out.print(" ");
}
// Inner loop 2
// to print triangle 2
for (n = m; n <= size - 1; n++) {
// Printing star with whitespace
System.out.print("*"
+ " ");
}
// By now done with one row so next line
System.out.println();
}
}
// Method 2
// Main driver method
public static void main(String[] args)
{
// Declaring and initializing variables to
// size of the triangle
int size = 7;
// Calling the above Method 1 to
// print and display the upper part of triangle
displayUpperPart(size);
}
}
Output
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
Example 2: Lower Part of the triangle
// Java Program to Print Lower Part of Mirror Upper Star
// Triangle Pattern
// Importing input output classes
import java.io.*;
// Main Class
class GFG {
// Method 1
// To print lower part of the pattern
private static void displayLowerPart(int size)
{
// Declaring variables for rows and columns
// respectively
int m, n;
// Outer loop fo Rows
for (m = 1; m <= size; m++) {
// Inner loop 1 to print triangle 3
for (n = 1; n < m; n++) {
// Printing whitespace
System.out.print(" ");
}
// Inner loop 2 to print triangle 4
for (n = m; n <= size; n++) {
// Printing star and whitespace
System.out.print("*"
+ " ");
}
// By now done with one row so new line
System.out.println();
}
}
// Method 2
// Main driver method
public static void main(String[] args)
{
// Declaring and initializing variable to
// size of the triangle
// This is number of rows
int size = 7;
// Calling the above Method1
// to display lower part of the triangle
displayLowerPart(size);
}
}
Output
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
Example 3: Complete Mirror Upper Star Triangle Pattern
// Java Program to Print Mirror upper Star triangle Pattern
// Importing input output classes
import java.io.*;
// Main Class
public class GFG {
// Method 1
// To print upper part of the pattern
private static void displayUpperPart(int size)
{
// Declaring variables for rows and columns
// respectively
int m, n;
// Outer loop for rows
for (m = size - 1; m >= 0; m--) {
// Inner loop 1
for (n = 0; n < m; n++) {
// Printing whitespace
System.out.print(" ");
}
// Inner loop 2
for (n = m; n <= size - 1; n++) {
// Printing star with whitespace
System.out.print("*"
+ " ");
}
// By now we are done with one row so new line
System.out.println();
}
}
// Method 2
// To print lower part of the pattern
private static void displayLowerPart(int size)
{
// Declaring variables for rows and columns
// respectively
int m, n;
// Outer loop for rows
for (m = 1; m <= size; m++) {
// Inner loop 1
for (n = 1; n < m; n++) {
// Printing whitespace
System.out.print(" ");
}
// Inner loop 2
for (n = m; n <= size; n++) {
// Printing star and whitespace
System.out.print("*"
+ " ");
}
// By now we are done with one row so new line
System.out.println();
}
}
// Method 3
// Main driver method
public static void main(String[] args)
{
// Declaring and initializing variable to
// size of the triangle
int size = 7;
// Calling Method 1 to
// display the upper part
displayUpperPart(size);
// Calling Method 2 to
// display lower part
displayLowerPart(size);
}
}
Output
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Time complexity: O(n2) where n is given input size
Auxiliary Space : O(1)