Open In App

# 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``using` `namespace` `std;` `void` `StarPattern(``int` `height)``{``// This loop prints number of rows``    ``for` `(``int` `i=0; ii; 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<

## 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``; ii; 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

 ` ``\$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

 ``

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 ``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)