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 codeint main(){ int height = 7; StarPattern(height); return 0; }// This code is contributed by Sahil_Bansall |
Java
// Java program to print patternimport 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 patterndef 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 codeheight = 7StarPattern(height)# This code is contributed# by Anant Agarwal. |
C#
// C# program to print patternusing 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 patternfunction 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 functiondef main(): height = 7 # Input for our interesting patterns height print_pattern(height)# Invoke the main functionmain() |
Javascript
//JavaScript codefunction 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 functionfunction main() { height = 7; // Input for our interesting patterns height print_pattern(height);}// Invoke the main functionmain(); |
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)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



