Program to print interesting pattern

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 zambiatek
{
 
  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 zambiatek {
 
    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)

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Check Also
Close
Back to top button