Program to Print the Trapezium Pattern
Last Updated :
13 Mar, 2023
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++
#include <iostream>
using namespace std;
int main()
{
int num = 3;
int space;
int i, j, lterm, rterm;
lterm = 1;
rterm = num * num + 1;
for (i = num; i > 0; i--) {
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++;
}
rterm = rterm - (i - 1) * 2 - 1;
cout << endl;
}
}
|
Java
public class HelloWorld {
public static void trapeziumPattern( int num)
{
int firsthalf = 1 ;
int secondhalf = (num * num) + 1 ;
int numOfSpaces = 0 ;
for ( int numOfLines = num; numOfLines >= 1 ;
numOfLines--) {
for ( int numOfSpacesCounter = numOfSpaces;
numOfSpacesCounter >= 1 ;
numOfSpacesCounter--) {
System.out.print( " " );
}
for ( int firstHalfCounter = 1 ;
firstHalfCounter <= numOfLines;
firstHalfCounter++) {
if (firstHalfCounter == numOfLines)
System.out.print((firsthalf++));
else
System.out.print((firsthalf++) + "*" );
}
for ( int secondHalfCounter = 1 ;
secondHalfCounter <= numOfLines;
secondHalfCounter++) {
System.out.print( "*" + (secondhalf++));
}
System.out.println();
numOfSpaces += 2 ;
secondhalf
= (secondhalf - 1 ) - ((numOfLines - 1 ) * 2 );
}
}
public static void main(String[] args)
{
trapeziumPattern(
4 );
}
}
|
Python 3
if __name__ = = "__main__" :
num = 3
lterm = 1
rterm = num * num + 1
for i in range (num, - 1 , - 1 ):
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
rterm = rterm - (i - 1 ) * 2 - 1
print ()
|
C#
using System;
public class HelloWorld {
public static void Main(String[] args)
{
int num = 3;
int space;
int i, j, lterm, rterm;
lterm = 1;
rterm = num * num + 1;
for (i = num; i > 0; i--) {
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++;
}
rterm = rterm - (i - 1) * 2 - 1;
Console.WriteLine();
}
}
}
|
PHP
<?php
$num = 3;
$space ;
$i ; $j ; $lterm ; $rterm ;
$lterm = 1;
$rterm = $num * $num + 1;
for ( $i = $num ; $i > 0; $i --)
{
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 ++;
}
$rterm = $rterm - ( $i - 1) * 2 - 1;
echo "\n" ;
}
?>
|
Javascript
<script>
var num = 3;
var space;
var i, j, lterm, rterm;
lterm = 1;
rterm = num * num + 1;
for (i = num; i > 0; i--) {
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++;
}
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)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...