GeeksforGeeks App
Open App
Browser
Continue

Program to print half diamond Number-Star pattern

Given a number N which represents the number of rows. The task is to print a half diamond Number-Star pattern as shown in the below examples.
Note: N is always an even number.
Examples

```Input: N = 4
Output:  2*2
1
1
2*2

Input: N = 6
Output: 3*3*3
2*2
1
1
2*2
3*3*3```

On carefully observing the above pattern, it can be broken down into two different triangles:

• An upside down right angled triangle.
• A normal right angled triangle.

For the first triangle pattern:

• Run two loops, first will take care of the number of rows and other will take care of the ‘*’ and numbers being printed.
• Inside the loops check whether the iterations of inner loop has reached to the given number of rows or not.
• If yes, print only number, otherwise print ‘*’ and number both.

The same approach will be followed for the second triangle pattern with a slight change that here the condition will be checked where the inner iteration is equal to 0 or not.
Below is the implementation of above approach:

C++

 `// C++ program to print half diamond``// number star pattern``#include ``using` `namespace` `std;` `// Function to print the given pattern``void` `printPattern(``int` `r)``{``    ``r = r / 2;``    ``int` `count = r;` `    ``// loop to print upper half pattern``    ``for` `(``int` `i = 0; i < r; i++) {``        ``for` `(``int` `j = r; j > i; j--) {``            ``if` `(j != r) {``                ``cout << ``"*"` `<< count;``            ``}``            ``else` `{``                ``cout << count;``            ``}``        ``}``        ``count--;``        ``cout << endl;``    ``}``    ``count++;` `    ``// loop to print lower half pattern``    ``for` `(``int` `i = 0; i < r; i++) {``        ``for` `(``int` `j = 0; j <= i; j++) {``            ``if` `(j != 0) {``                ``cout << ``"*"` `<< count;``            ``}``            ``else` `{``                ``cout << count;``            ``}``        ``}``        ``count++;``        ``cout << endl;``    ``}``}` `// Driver code``int` `main()``{``    ``int` `n;``    ` `    ``n = 6;``    ` `    ``printPattern(n);``    ` `    ``return` `0;``}`

Java

 `// Java program to print half``// diamond number star pattern``class` `GFG``{``// Function to print``// the given pattern``static` `void` `printPattern(``int` `r)``{``    ``r = r / ``2``;``    ``int` `count = r;` `    ``// loop to print``    ``// upper half pattern``    ``for` `(``int` `i = ``0``; i < r; i++)``    ``{``        ``for` `(``int` `j = r; j > i; j--)``        ``{``            ``if` `(j != r)``            ``{``                ``System.out.print(``"*"` `+ count);``            ``}``            ``else``            ``{``                ``System.out.print(count);``            ``}``        ``}``        ``count--;``        ``System.out.print(``"\n"``);``    ``}``    ``count++;` `    ``// loop to print lower``    ``// half pattern``    ``for` `(``int` `i = ``0``; i < r; i++)``    ``{``        ``for` `(``int` `j = ``0``; j <= i; j++)``        ``{``            ``if` `(j != ``0``)``            ``{``                ``System.out.print(``"*"` `+ count);``            ``}``            ``else``            ``{``                ``System.out.print(count);``            ``}``        ``}``        ``count++;``        ``System.out.print(``"\n"``);``    ``}``}` `// Driver code``public` `static` `void` `main(String [] args)``{``    ``int` `n;``    ` `    ``n = ``6``;``    ` `    ``printPattern(n);``}``}` `// This code is contributed``// by Smitha`

Python 3

 `# Python 3 program to``# print half diamond``# number star pattern` `# Function to print the``# given pattern``def` `printPattern(r) :` `    ``r ``=` `r ``/``/` `2``    ``count ``=` `r` `    ``# loop to print upper``    ``# half pattern``    ``for` `i ``in` `range``(r) :``        ``for` `j ``in` `range``(r, i, ``-``1``) :``            ``if` `j !``=` `r :``                ``print``(``"*"` `+` `str``(count),``                             ``end ``=` `"")``            ``else` `:``                ``print``(count, end ``=` `"")` `        ``count ``-``=` `1``        ``print``()` `    ``count ``+``=` `1` `    ``# loop to print lower``    ``# half pattern``    ``for` `i ``in` `range``(r) :``        ``for` `j ``in` `range``(i ``+` `1``):``            ``if` `j !``=` `0` `:``                ``print``(``"*"` `+` `str``(count),``                             ``end ``=` `"")``            ``else` `:``                ``print``(count, end ``=` `"")` `        ``count ``+``=` `1``        ``print``()` `# Driver Code``if` `__name__ ``=``=` `"__main__"` `:` `    ``n ``=` `6` `    ``printPattern(n)``            ` `# This code is contributed``# by ANKITRAI1`

C#

 `// C++ program to print half diamond``// number star pattern` `using` `System;` `public` `class` `GFG``{``// Function to print the given pattern``static` `void` `printPattern(``int` `r)``{``    ``r = r / 2;``    ``int` `count = r;`` ` `    ``// loop to print upper half pattern``    ``for` `(``int` `i = 0; i < r; i++) {``        ``for` `(``int` `j = r; j > i; j--) {``            ``if` `(j != r) {``                ``Console.Write(``"*"` `+ count);``            ``}``            ``else` `{``                ``Console.Write( count);``            ``}``        ``}``        ``count--;``        ``Console.WriteLine();``    ``}``    ``count++;`` ` `    ``// loop to print lower half pattern``    ``for` `(``int` `i = 0; i < r; i++) {``        ``for` `(``int` `j = 0; j <= i; j++) {``            ``if` `(j != 0) {``                ``Console.Write(``"*"` `+ count);``            ``}``            ``else` `{``                ``Console.Write( count);``            ``}``        ``}``        ``count++;``        ``Console.WriteLine();``    ``}``}`` ` `// Driver code``public` `static` `void` `Main()``{``    ``int` `n;``     ` `    ``n = 6;``     ` `    ``printPattern(n);``     ` `}``}`

PHP

 ` ``\$i``; ``\$j``--)``        ``{``            ``if` `(``\$j` `!= ``\$r``)``            ``{``                ``echo` `"*"` `. ``\$count``;``            ``}``            ``else``            ``{``                ``echo` `\$count``;``            ``}``        ``}``        ``\$count``--;``        ``echo` `"\n"``;``    ``}``    ``\$count``++;` `    ``// loop to print lower half pattern``    ``for` `(``\$i` `= 0; ``\$i` `< ``\$r``; ``\$i``++)``    ``{``        ``for` `(``\$j` `= 0; ``\$j` `<= ``\$i``; ``\$j``++)``        ``{``            ``if` `(``\$j` `!= 0)``            ``{``                ``echo` `"*"` `. ``\$count``;``            ``}``            ``else``            ``{``                ``echo` `\$count``;``            ``}``        ``}``        ``\$count``++;``        ``echo` `"\n"``;``    ``}``}` `// Driver code``\$n` `= 6;` `printPattern(``\$n``);` `// This code is contributed``// by Arnab Kundu``?>`

Javascript

 ``

Output:

```3*3*3
2*2
1
1
2*2
3*3*3```

Time Complexity: O(r2), where r represents the given input.
Auxiliary Space: O(1), no extra space is required, so it is a constant.

My Personal Notes arrow_drop_up