Given a number n, the task is to write a program to draw the following pattern using ‘$’.
$
$ $ $
$ $ $ $ $
$ $ $ $ $ $ $
$ $
$ $ $ $
$ $ $ $ $ $
$ $ $ $ $ $ $
$ $ $ $ $ $
$ $ $ $
$ $
$ $ $ $ $ $ $
$ $ $ $ $
$ $ $
$
Approach:
The above pattern is printed by breaking it into smaller patterns:
- The above triangle
$
$ $ $
$ $ $ $ $
$ $ $ $ $ $ $
- This is done with the help of for loop for rows 0 to n-1. Firstly the space is printed, then the ‘$’ is printed.
- The middle body
$ $
$ $ $ $
$ $ $ $ $ $
$ $ $ $ $ $ $
$ $ $ $ $ $
$ $ $ $
$ $
- This again is divided into 3 smaller patterns:
$ $
$ $ $ $
$ $ $ $ $ $
- This is done with the help of for loop for rows 0 to n-2. Firstly the left ‘$’ is printed, then the space is printed, then the right ‘$’ is printed.
- The middle body
$ $ $ $ $ $ $
- This is done with the help of for loop for row = n-1. Here only the ‘$’ is printed for i 0 to (2n -1).
- The lower middle body
$ $ $ $ $ $
$ $ $ $
$ $
- This is done with the help of for loop for rows n to 2n-1. Firstly the left ‘$’ is printed, then the space is printed, then the right ‘$’ is printed.
- The lower triangle
$ $ $ $ $ $ $
$ $ $ $ $
$ $ $
$
- This is done with the help of for loop for rows 0 to n-1. This is done similar to the upper triangle pattern.
Hence the complete pattern will be drawn.
Below program prints the pattern as shown above:
C++
#include <iostream>
using namespace std;
void printPattern( int n)
{
for ( int r = 0; r < n; r++) {
for ( int i = r; i < n - 1; i++) {
cout << " " ;
cout << " " ;
}
for ( int i = 0; i < 2 * r + 1; i++)
cout << "$ " ;
cout << endl ;
}
for ( int r = 0; r < 2 * n - 1; r++) {
if (r < n - 1) {
for ( int i = 0; i <= r; i++)
cout << "$ " ;
for ( int i = 0; i <= 2 * (n - r - 1)-2; i++) {
cout << " " ;
cout << " " ;
}
for ( int i = 0; i <= r; i++)
cout << "$ " ;
}
else if (r == n - 1) {
for ( int i = 0; i < 2 * r + 1; i++)
cout << "$ " ;
}
else {
for ( int i = 2 * n - 1; i > r; i--)
cout << "$ " ;
for ( int i = n; i <= r; i++) {
cout << " " ;
cout << " " ;
}
for ( int i = n; i < r; i++) {
cout << " " ;
cout << " " ;
}
for ( int i = 2 * n - 1; i > r; i--)
cout << "$ " ;
}
cout << endl ;
}
for ( int r = 0; r < n; r++) {
for ( int i = 0; i < r; i++){
cout << " " ;
cout << " " ;
}
for ( int i = 0; i < 2 * (n - r) - 1; i++)
cout << "$ " ;
cout << endl ;
}
}
int main()
{
int n = 4;
printPattern(n);
return 0;
}
|
Java
public class GFG {
public static void printPattern( int n)
{
for ( int r = 0 ; r < n; r++) {
for ( int i = r; i < n - 1 ; i++){
System.out.print( " " );
System.out.print( " " );
}
for ( int i = 0 ; i < 2 * r + 1 ; i++)
System.out.print( "$ " );
System.out.println();
}
for ( int r = 0 ; r < 2 * n - 1 ; r++) {
if (r < n - 1 ) {
for ( int i = 0 ; i <= r; i++)
System.out.print( "$ " );
for ( int i = 0 ; i <= 2 * (n - r - 1 ) - 2 ; i++){
System.out.print( " " );
System.out.print( " " );
}
for ( int i = 0 ; i <= r; i++)
System.out.print( "$ " );
}
else if (r == n - 1 ) {
for ( int i = 0 ; i < 2 * r + 1 ; i++)
System.out.print( "$ " );
}
else {
for ( int i = 2 * n - 1 ; i > r; i--)
System.out.print( "$ " );
for ( int i = n; i <= r; i++){
System.out.print( " " );
System.out.print( " " );
}
for ( int i = n; i < r; i++){
System.out.print( " " );
System.out.print( " " );
}
for ( int i = 2 * n - 1 ; i > r; i--)
System.out.print( "$ " );
}
System.out.println();
}
for ( int r = 0 ; r < n; r++) {
for ( int i = 0 ; i < r; i++){
System.out.print( " " );
System.out.print( " " );
}
for ( int i = 0 ; i < 2 * (n - r) - 1 ; i++)
System.out.print( "$ " );
System.out.println();
}
}
public static void main(String[] args)
{
int n = 4 ;
printPattern(n);
}
}
|
Python3
def printPattern(n):
for r in range ( 0 ,n, 1 ):
for i in range (r,n - 1 , 1 ):
print ( " " ,end = " " )
for i in range ( 0 , 2 * r + 1 , 1 ):
print ( "$" ,end = " " )
print ( "\n" )
for r in range ( 0 , 2 * n - 1 , 1 ):
if (r < n - 1 ):
for i in range ( 0 ,r + 1 , 1 ):
print ( "$" ,end = " " )
for i in range ( 0 , 2 * (n - r - 1 ) - 2 + 1 , 1 ):
print ( " " ,end = " " )
for i in range ( 0 ,r + 1 , 1 ):
print ( "$" , end = " " )
elif (r = = n - 1 ):
for i in range ( 0 , 2 * r + 1 , 1 ):
print ( "$" ,end = " " )
else :
i = 2 * n - 1
while (i > r):
print ( "$" ,end = " " )
i - = 1
for i in range (n,r + 1 , 1 ):
print ( " " ,end = " " )
for i in range (n,r, 1 ):
print ( " " ,end = " " )
i = 2 * n - 1
while (i > r):
print ( "$" ,end = " " )
i - = 1
print ( "\n" )
for r in range ( 0 ,n, 1 ):
for i in range ( 0 ,r, 1 ):
print ( " " ,end = " " )
for i in range ( 0 , 2 * (n - r) - 1 , 1 ):
print ( "$" ,end = " " )
print ( "\n" )
if __name__ = = '__main__' :
n = 4
printPattern(n)
|
C#
using System;
class GFG {
public static void printPattern( int n) {
for ( int r = 0; r < n; r++) {
for ( int i = r; i < n - 1; i++) {
Console.Write( " " );
Console.Write( " " );
}
for ( int i = 0; i < 2 * r + 1; i++)
Console.Write( "$ " );
Console.Write( "\n" );
}
for ( int r = 0; r < 2 * n - 1; r++) {
if (r < n - 1) {
for ( int i = 0; i <= r; i++)
Console.Write( "$ " );
for ( int i = 0; i <= 2 * (n - r - 1) - 2; i++) {
Console.Write( " " );
Console.Write( " " );
}
for ( int i = 0; i <= r; i++)
Console.Write( "$ " );
}
else if (r == n - 1) {
for ( int i = 0; i < 2 * r + 1; i++)
Console.Write( "$ " );
}
else {
for ( int i = 2 * n - 1; i > r; i--)
Console.Write( "$ " );
for ( int i = n; i <= r; i++) {
Console.Write( " " );
Console.Write( " " );
}
for ( int i = n; i < r; i++) {
Console.Write( " " );
Console.Write( " " );
}
for ( int i = 2 * n - 1; i > r; i--)
Console.Write( "$ " );
}
Console.Write( "\n" );
}
for ( int r = 0; r < n; r++) {
for ( int i = 0; i < r; i++) {
Console.Write( " " );
Console.Write( " " );
}
for ( int i = 0; i < 2 * (n - r) - 1; i++)
Console.Write( "$ " );
Console.Write( "\n" );
}
}
public static void Main() {
int n = 4;
printPattern(n);
}
}
|
PHP
<?php
function printPattern( $n )
{
for ( $r = 0; $r < $n ; $r ++)
{
for ( $i = $r ; $i < $n - 1; $i ++)
{
echo ( " " ) ;
echo ( " " ) ;
}
for ( $i = 0; $i < 2 * $r + 1; $i ++)
echo ( "$ " ) ;
echo ( "\n" ) ;
}
for ( $r = 0; $r < 2 * $n - 1; $r ++)
{
if ( $r < $n - 1)
{
for ( $i = 0; $i <= $r ; $i ++)
echo ( "$ " ) ;
for ( $i = 0;
$i <= 2 * ( $n - $r - 1) - 2;
$i ++)
{
echo ( " " );
echo ( " " );
}
for ( $i = 0; $i <= $r ; $i ++)
echo ( "$ " );
}
else if ( $r == $n - 1)
{
for ( $i = 0; $i < 2 * $r + 1; $i ++)
echo ( "$ " ) ;
}
else
{
for ( $i = 2 * $n - 1; $i > $r ; $i --)
echo ( "$ " ) ;
for ( $i = $n ; $i <= $r ; $i ++)
{
echo ( " " ) ;
echo ( " " ) ;
}
for ( $i = $n ; $i < $r ; $i ++)
{
echo ( " " ) ;
echo ( " " ) ;
}
for ( $i = 2 * $n - 1; $i > $r ; $i --)
echo ( "$ " ) ;
}
echo ( "\n" ) ;
}
for ( $r = 0; $r < $n ; $r ++)
{
for ( $i = 0; $i < $r ; $i ++)
{
echo ( " " ) ;
echo ( " " ) ;
}
for ( $i = 0; $i < 2 * ( $n - $r ) - 1; $i ++)
echo ( "$ " ) ;
echo ( "\n" ) ;
}
}
$n = 4;
printPattern( $n );
?>
|
Javascript
<script>
function printPattern(n)
{
for ( var r = 0; r < n; r++)
{
for ( var i = r; i < n - 1; i++)
{
document.write( " " );
document.write( " " );
}
for ( var i = 0; i < 2 * r + 1; i++) document.write( "$ " );
document.write( "<br>" );
}
for ( var r = 0; r < 2 * n - 1; r++)
{
if (r < n - 1)
{
for ( var i = 0; i <= r; i++) document.write( "$ " );
for ( var i = 0; i <= 2 * (n - r - 1) - 2; i++) {
document.write( " " );
document.write( " " );
}
for ( var i = 0; i <= r; i++) document.write( "$ " );
} else if (r == n - 1) {
for ( var i = 0; i < 2 * r + 1; i++) document.write( "$ " );
} else {
for ( var i = 2 * n - 1; i > r; i--) document.write( "$ " );
for ( var i = n; i <= r; i++) {
document.write( " " );
document.write( " " );
}
for ( var i = n; i < r; i++) {
document.write( " " );
document.write( " " );
}
for ( var i = 2 * n - 1; i > r; i--) document.write( "$ " );
}
document.write( "<br>" );
}
for ( var r = 0; r < n; r++)
{
for ( var i = 0; i < r; i++) {
document.write( " " );
document.write( " " );
}
for ( var i = 0; i < 2 * (n - r) - 1; i++) document.write( "$ " );
document.write( "<br>" );
}
}
var n = 4;
printPattern(n);
</script>
|
Output: $
$ $ $
$ $ $ $ $
$ $ $ $ $ $ $
$ $
$ $ $ $
$ $ $ $ $ $
$ $ $ $ $ $ $
$ $ $ $ $ $
$ $ $ $
$ $
$ $ $ $ $ $ $
$ $ $ $ $
$ $ $
$
Time Complexity : O(n2)
Auxiliary Space : O(1)