Open In App

Program to print interesting pattern

Last Updated : 03 Apr, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

Program to print following pattern: 
 

********1********
*******2*2*******
******3*3*3******
*****4*4*4*4*****
****5*5*5*5*5****
***6*6*6*6*6*6***
**7*7*7*7*7*7*7**


Examples : 
 

Input : 4

Output :
********1********
*******2*2*******
******3*3*3******
*****4*4*4*4*****

Input :5

Output :
********1********
*******2*2*******
******3*3*3******
*****4*4*4*4*****
****5*5*5*5*5****


 


 

C++
// CPP program to print pattern
#include<bits/stdc++.h>
using namespace std;

void StarPattern(int height)
{
// This loop prints number of rows
    for (int i=0; i<height; i++ )
    {
        // For every row, first '*' will be 
        // printed Height-rowNumber times.
        for (int j = height-1; j>i; j--)
        {
            cout<<"*";
        }

        // Print character '*' and Row number 
        // alternately boolean variable to
        // decide whether to print char or int
        bool printChar = false;

        for (int j = 0; j< ((i*2) +1); j++)
        {
            if ( printChar )
            {
                cout<<"*";
            }
            else
            {
               cout<< (i + 1);
            }
            
            // Each time after printing char 
            // or int reverse the boolean variable
            //  to print alternatively
                printChar = !printChar;
            }
            
            // After printing char and int, 
            // it will print '*'
            for (int j = height-1; j>i; j--)
            {
                cout<<"*";
            }

        cout<<endl;
        }
}

// driver code
int main()
{
    int height = 7;
    StarPattern(height);

    return 0;
    
}

// This code is contributed by Sahil_Bansall
Java
// Java program to print pattern
import java.util.*;
import java.lang.*;
import java.io.*;


public class GeeksforGeeks
{ 

  public static void StarPattern(int height)
  {
    
    // This loop prints number of rows
    for (int i=0; i<height; i++ )
    {
        // For every row, first '*' will be printed 
        // Height-rowNumber times.
        for (int j = height-1; j>i; j--)
        {
            System.out.print("*");
        }
        
        // Print character '*' and Row number alternately
        // boolean variable to decide whether to print char or int
        boolean printChar = false;
        
        for (int j = 0; j< ((i*2) +1); j++)
        {
            if ( printChar )
            {
                System.out.print("*");                 
            }
            else
            {
            System.out.print(i + 1);
            }
            // Each time after printing char or int 
            // reverse the boolean variable to print alternatively 
                printChar = !printChar;
            }
            // After printing char and int, it will print '*'
            for (int j = height-1; j>i; j--)
            {
                System.out.print("*");
            }
            
            System.out.println();
        }
        }
        
    // Driver Code
    public static void main(String args[])
    {
       int height = 7;
       StarPattern(height);
    }
}
Python3
# Python program to print pattern

def StarPattern(height):

    # This loop prints number of rows
    for i in range(height):
        
        # For every row, first '*' will be 
        # printed Height-rowNumber times.
        for j in range(height-1,i,-1):
        
            print("*",end="")
        
        # Print character '*' and Row number 
        # alternately boolean variable to
        # decide whether to print char or int
        printChar = False
 
        for j in range(((i*2) +1)):
        
            if ( printChar ):
            
                print("*",end="")
            
            else:
            
                print(i + 1,end="")
            
             
            # Each time after printing char 
            # or int reverse the boolean variable
            #  to print alternatively
            printChar = not printChar
            
             
        # After printing char and int, 
        # it will print '*'
        for j in range(height-1,i,-1):
        
            print("*",end="")
        
 
        print()
        
# Driver code

height = 7
StarPattern(height)

# This code is contributed
# by Anant Agarwal.
C#
// C# program to print pattern
using System;
public class GeeksforGeeks {

    public static void StarPattern(int height)
    {

        // This loop prints number of rows
        for (int i = 0; i < height; i++) {

            // For every row, first '*' will be 
            // printed Height-rowNumber times.
            for (int j = height - 1; j > i; j--) {
                Console.Write("*");
            }

            // Print character '*' and Row number 
            // alternately boolean variable to decide
            // whether to print char or int
            bool printChar = false;

            for (int j = 0; j < ((i * 2) + 1); j++) {
                if (printChar) {
                    Console.Write("*");
                }
                else {
                    Console.Write(i + 1);
                }
                // Each time after printing char 
                // or int reverse the boolean variable
                // to print alternatively
                printChar = !printChar;
            }
            
            // After printing char and int, it will print '*'
            for (int j = height - 1; j > i; j--) {
                Console.Write("*");
            }

            Console.WriteLine();
        }
    }

    // Driver Code
    public static void Main()
    {
        int height = 7;
        StarPattern(height);
    }
}
// This code is contributed by vt_m.
PHP
<?php
// PHP implementation to 
// print pattern

function StarPattern($height)
{
    // This loop prints number 
    // of rows
    for ($i = 0; $i < $height; $i++ )
    {
        // For every row, first '*' 
        // will be printed 
        // Height-rowNumber times.
        for ($j = $height - 1; $j > $i; 
                                  $j--)
        {
            echo "*";
        }

        // Print character '*' and 
        // Row number alternately 
        // boolean variable to decide 
        // whether to print char or int
        $printChar = false;

        for ($j = 0; $j< (($i * 2) + 1); 
                                   $j++)
        {
            if ( $printChar )
            {
                echo "*";
            }
            else
            {
            echo ($i + 1);
            }
            
            // Each time after printing 
            // char or int reverse the 
            // boolean variable to print 
            // alternatively
                $printChar = !$printChar;
            }
            
            // After printing char and int, 
            // it will print '*'
            for ($j = $height-1; $j > $i; 
                                    $j--)
            {
                echo "*";
            }

        echo "\n";
        }
}

// Driver code
$height = 7;
StarPattern($height);

// This code is contributed by mits 
?>
JavaScript
<script>
      // JavaScript program to print pattern

      function StarPattern(height) 
      {
      
        // This loop prints number of rows
        for (var i = 0; i < height; i++)
        {
        
          // For every row, first '*' will be
          // printed Height-rowNumber times.
          for (var j = height + 1; j > i; j--) 
          {
            document.write("*");
          }

          // Print character '*' and Row number
          // alternately boolean variable to
          // decide whether to print char or int
          var printChar = false;

          for (var j = 0; j < i * 2 + 1; j++)
          {
            if (printChar) {
              document.write("*");
            } else {
              document.write(i + 1);
            }

            // Each time after printing char
            // or int reverse the boolean variable
            // to print alternatively
            printChar = !printChar;
          }

          // After printing char and int,
          // it will print '*'
          for (var j = height + 1; j > i; j--) {
            document.write("*");
          }
          document.write("<br>");
        }
      }

      // driver code
      var height = 7;
      StarPattern(height);
      
      // This code is contributed by rdtank.
    </script>

Output : 
 

********1********
*******2*2*******
******3*3*3******
*****4*4*4*4*****
****5*5*5*5*5****
***6*6*6*6*6*6***
**7*7*7*7*7*7*7**

Time complexity: O(h2) where h is the height.

 Auxiliary Space: O(1)

Method 2(Using conditions):

We can use the positions of the pattern to identify the places to print the number or '*'.

For example take height = 5:

   1   2   3   4   5   6   7   8   9 10 11 12 13 14 15 16 17

1  *   *   *    *    *   *   *    *   1    *    *    *   *   *    *   *   *

2  *   *   *    *    *   *   *    2    *    2   *    *   *   *   *   *   *

3  *   *   *    *    *   *   3    *    3    *   3    *   *   *   *   *   *

4  *   *   *    *    *   4   *    4    *    4   *    4   *   *   *   *   *

5  *   *   *    *    5   *   5    *    5    *   5   *   5   *   *   *   *

Now imagine that we are printing a box filled '*' and at specific places we see numbers. Notice their positions and observe that in all lines it starts from i+j == 10 and ends at j-i <= height+4. And it is printing only when i+j is even. There we will print i when it is i+j is even and in the above-specified range. 
 

Java
/*package whatever //do not write package name here */

import java.io.*;

public class GFGInterestingPattern {
    public static void main(String[] args)
    {
        int height = 7;
        // Input for our interesting patterns height
        printPattern(height);
    }

    public static void printPattern(int height)
    {
        // This loop prints the rows
        for (int i = 1; i <= height; i++) {
            // This loop prints the columns
            for (int j = 1; j <= 17; j++) {
                // This condition checks whether to print
                // number or '*'
                if ((i + j) % 2 == 0 && i + j >= 10
                    && j - i <= 8) {
                    System.out.print(i);
                }
                else {
                    System.out.print('*');
                }
            }
            // Goes to next line
            System.out.println();
        }
    }
    // This code is contributed by Satya Anvesh R
}
Python3
def print_pattern(height):
    # This loop prints the rows
    for i in range(1, height+1):
        # This loop prints the columns
        for j in range(1, 18):
            # This condition checks whether to print number or '*'
            if (i+j) % 2 == 0 and i+j >= 10 and j-i <= 8:
                print(i, end="")
            else:
                print("*", end="")
        # Goes to next line
        print()

# Main function


def main():
    height = 7
    # Input for our interesting patterns height
    print_pattern(height)


# Invoke the main function
main()
JavaScript
//JavaScript code
function print_pattern(height) {
    // This loop prints the rows
    for (i = 1; i <= height; i++) { temp="";
        // This loop prints the columns
        for (j = 1; j <= 18; j++) {
            // This condition checks whether to print number or '*'
            if ((i + j) % 2 == 0 && i + j >= 10 && j - i <= 8) {
                temp =temp + i;
            } else {
               temp =temp +"*";
            }
        }
        // Goes to next line
        console.log(temp);
    }
}

// Main function
function main() {
    height = 7;
    // Input for our interesting patterns height
    print_pattern(height);
}

// Invoke the main function
main();
C++
#include <iostream>
using namespace std;

void printPattern(int height)
{
    // This loop prints the rows
    for (int i = 1; i <= height; i++) {
        // This loop prints the columns
        for (int j = 1; j <= 17; j++) {
            // This condition checks whether to print number
            // or '*'
            if ((i + j) % 2 == 0 && i + j >= 10
                && j - i <= 8) {
                cout << i;
            }
            else {
                cout << "*";
            }
        }
        // Goes to next line
        cout << endl;
    }
}

int main()
{
    int height = 7;
    // Input for our interesting patterns height
    printPattern(height);
    return 0;
}
C#
using System;

class GFGInterestingPattern {
    public static void Main(string[] args)
    {
        int height = 7;
        // Input for our interesting patterns height
        printPattern(height);
    }

    public static void printPattern(int height)
    {
        // This loop prints the rows
        for (int i = 1; i <= height; i++) {
            // This loop prints the columns
            for (int j = 1; j <= 17; j++) {
                // This condition checks whether to print
                // number or '*'
                if ((i + j) % 2 == 0 && i + j >= 10
                    && j - i <= 8) {
                    Console.Write(i);
                }
                else {
                    Console.Write('*');
                }
            }
            // Goes to next line
            Console.WriteLine();
        }
    }
}

Output
********1********
*******2*2*******
******3*3*3******
*****4*4*4*4*****
****5*5*5*5*5****
***6*6*6*6*6*6***
**7*7*7*7*7*7*7**

Time complexity: O(h2) where h is the height.

Auxiliary Space: O(1)


Next Article

Similar Reads