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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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

Output:

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

My Personal Notes arrow_drop_up If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.