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 w3wiki { 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 w3wiki { 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(); } } } |
********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)