Program to Print the Trapezium Pattern

22 Jun, 2022
Given ‘num’ which indicates number of lines.The task is to print a trapezium pattern in num lines.Examples:  
Input  : 4 
Output :
1*2*3*4*17*18*19*20
  5*6*7*14*15*16
    8*9*12*13
      10*11


Input : 2
Output :
1*2*5*6
  3*4
Algorithm : step 1. To read num which indicates the number of lines. step 2.We are diving the pattern into 2 halves that is LHS part and the RHS part. Ex : When num = 2 LHS – 1*2* 3*RHS – 5*6 4 step 3.Combining LHS and RHS we get the complete pattern. 
C++
Java
Python 3
C#
PHP
Javascript
// CPP program to print Trapezium Pattern#include <iostream> using namespace std; int main(){     int num = 3;    int space;     int i, j, lterm, rterm;     // The terms on the LHS of the pattern    lterm = 1;     // The terms on the RHS of the pattern    rterm = num * num + 1;     for (i = num; i > 0; i--) {         // To print number of spaces        for (space = num; space > i; space--)            cout << " ";         for (j = 1; j <= i; j++) {            cout << lterm;            cout << "*";            lterm++;        }        for (j = 1; j <= i; j++) {            cout << rterm;            if (j < i)                printf("*");            rterm++;        }         // To get the next term on RHS of the Pattern        rterm = rterm - (i - 1) * 2 - 1;        cout << endl;    }}
// Java program to print Trapezium Patternpublic class HelloWorld {     public static void trapeziumPattern(int num)    {         int firsthalf = 1;        int secondhalf = (num * num) + 1;        int numOfSpaces = 0;         // numOfLines is the line number        for (int numOfLines = num; numOfLines >= 1;             numOfLines--) {             // Prints the spaces for each line            for (int numOfSpacesCounter = numOfSpaces;                 numOfSpacesCounter >= 1;                 numOfSpacesCounter--) {                System.out.print(" ");            }             // Prints the first half of the trapezium            for (int firstHalfCounter = 1;                 firstHalfCounter <= numOfLines;                 firstHalfCounter++) {                 // If it is the last number for a line then                // we don't print '*'                if (firstHalfCounter == numOfLines)                    System.out.print((firsthalf++));                 else                    System.out.print((firsthalf++) + "*");            }             // Prints the second half of the trapezium            for (int secondHalfCounter = 1;                 secondHalfCounter <= numOfLines;                 secondHalfCounter++) {                System.out.print("*" + (secondhalf++));            }             System.out.println();             // Calculates the number of Spaces for the next            // line            numOfSpaces += 2;             // Calculates the first number of the            // second half for the next iteration/line            secondhalf                = (secondhalf - 1) - ((numOfLines - 1) * 2);        }    }     public static void main(String[] args)    {        trapeziumPattern(            4); // Passing the integer as the argument to                // print trapezium pattern    }}
# Python 3 program to print# Trapezium Pattern  if __name__ == "__main__":    num = 3      # The terms on the LHS    # of the pattern    lterm = 1      # The terms on the RHS    # of the pattern    rterm = num * num + 1      for i in range(num, -1, -1):          # To print number of spaces        for space in range(num, i-1, -1):            print(" ", end ="")          for j in range(1, i + 1):            print(str(lterm)+"*", end ="")            lterm += 1         for j in range(1, i + 1):            print(rterm, end ="")            if j < i:                print("*", end ="")            rterm += 1          # To get the next term on RHS of the Pattern        rterm = rterm - (i - 1) * 2 - 1        print() # This code is contributed by ChitraNayal
// C# program to print Trapezium Patternusing System; public class HelloWorld {     public static void Main(String[] args)    {         // Scanner scn = new Scanner(System.in);        int num = 3;        int space;        // System.out.println("Enter number of lines : ");        // num = scn.nextInt();         int i, j, lterm, rterm;         lterm = 1; // The terms on the LHS of the pattern         // The terms on the RHS of the pattern        rterm = num * num + 1;         for (i = num; i > 0; i--) {             // To print number of spaces            for (space = num; space > i; space--)                Console.Write(" ");             for (j = 1; j <= i; j++) {                Console.Write(lterm);                Console.Write("*");                lterm++;            }            for (j = 1; j <= i; j++) {                Console.Write(rterm);                if (j < i)                    Console.Write("*");                rterm++;            }             // To get the next term on RHS of the Pattern            rterm = rterm - (i - 1) * 2 - 1;            Console.WriteLine();        }    }} // This code is contributed by ankita_saini
<?php// PHP program to print// Trapezium Pattern$num = 3;$space; $i; $j; $lterm; $rterm; // The terms on the LHS// of the pattern$lterm = 1; // The terms on the// RHS of the pattern$rterm = $num * $num + 1; for ($i = $num; $i > 0; $i--){     // To print number of spaces    for ($space = $num;         $space > $i; $space--)        echo " ";     for ($j = 1; $j <= $i; $j++)    {        echo $lterm;        echo "*";        $lterm++;    }    for ($j = 1; $j <= $i; $j++)    {        echo $rterm;        if ($j < $i)            echo "*";        $rterm++;    }     // To get the next term    // on RHS of the Pattern    $rterm = $rterm - ($i - 1) * 2 - 1;    echo "\n";} // This code is contributed// by Akanksha Rai(Abby_akku)?>
<script>       // JavaScript program to print Trapezium Pattern      var num = 3;      var space;       var i, j, lterm, rterm;       // The terms on the LHS of the pattern      lterm = 1;       // The terms on the RHS of the pattern      rterm = num * num + 1;       for (i = num; i > 0; i--) {        // To print number of spaces        for (space = num; space > i; space--)        document.write("  ");         for (j = 1; j <= i; j++) {          document.write(lterm);          document.write("*");          lterm++;        }        for (j = 1; j <= i; j++) {          document.write(rterm);          if (j < i) document.write("*");          rterm++;        }         // To get the next term on RHS of the Pattern        rterm = rterm - (i - 1) * 2 - 1;        document.write("<br>");      }       </script>
Output: 
Enter number of lines : 3
1*2*3*10*11*12
  4*5*8*9
    6*7
Time complexity: O(n2)
space complexity: O(1) 
ankita_saini
Akanksha_Rai
ukasp
farhan150
rdtank
sabarirjsr
hasani
pattern-printing
C++ Programs
Java Programs
School Programming
pattern-printing
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Shallow Copy and Deep Copy in C++
C++ Program to check if a given String is Palindrome or not
How to find the minimum and maximum element of a Vector using STL in C++?
Passing a function as a parameter in C++
cin in C++
Initializing a List in Java
Java Programming Examples
Convert a String to Character Array in Java
Convert Double to Integer in Java
Implementing a Linked List in Java using Class