Program to print interesting pattern
Last Updated :
03 Apr, 2023
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)