# Printing the Triangle Pattern using last term N

Given a number N which represents the last term of the Triangle Pattern. The task is to print the Triangle Pattern from 1 to N, such that each row is complete.

Triangle Pattern is given as:

```   1
2 3
4 5 6
7 8 9 10
.
.
```

Examples:

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

Input: N = 7
Output:
1
2 3
4 5 6

7 will not be printed as
it would result in an incomplete row
```

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

Approach:

• Find the number of complete rows from the given last term N.
• As:
For Max Height = 1, the last term would be 1
For Max Height = 2, the last term would be 3
For Max Height = 3, the last term would be 6
• So the last term forms a pattern: 1, 3, 6, 10, 15,…
• Therefore, the n-th term of series 1, 3, 6, 10, 15,…
A(n) = 1 + 2 + 3 + 4… + (n – 1) + n
= n(n + 1) / 2

i.e A(n) is the sum of First n natural numbers.

• So in
```A(n) = n(n + 1) / 2
A(n) represents the last term (as per our problem),
and n represents the max height of the Triangle
```
• Hence this can be seen as:
`Last term = height (height + 1) / 2`
• Therefore,
`height = (-1 + sqrt(1 + 8*lastTerm)) / 2`
• After finding the max height, the triangle pattern can be easily printed.

Below is the implementation of the above approach:

## C++

 `// C++ code for printing the ` `// Triangle Pattern using last term N ` ` `  `#include ` `using` `namespace` `std; ` ` `  `// Function to demonstrate printing pattern ` `void` `triangle(``int` `n) ` `{ ` `    ``// number of spaces ` `    ``int` `k = 2 * n - 2; ` ` `  `    ``// character to be printed ` `    ``int` `ch = 1; ` ` `  `    ``// outer loop to handle number of rows ` `    ``// n in this case ` `    ``for` `(``int` `i = 0; i < n; i++) { ` ` `  `        ``// inner loop to handle number spaces ` `        ``// values changing acc. to requirement ` `        ``for` `(``int` `j = 0; j < k; j++) ` `            ``cout << ``" "``; ` ` `  `        ``// decrementing k after each loop ` `        ``k = k - 1; ` ` `  `        ``// inner loop to handle number of columns ` `        ``// values changing acc. to outer loop ` `        ``for` `(``int` `j = 0; j <= i; j++) { ` `            ``// printing stars ` `            ``cout << ch++ << ``" "``; ` `        ``} ` ` `  `        ``// ending line after each row ` `        ``cout << endl; ` `    ``} ` `} ` ` `  `// Function to find the max height ` `// or the number of lines ` `// in the triangle pattern ` `int` `maxHeight(``int` `n) ` `{ ` `    ``return` `(((``int``)``sqrt``(1 + 8.0 * n)) - 1) / 2; ` `} ` ` `  `// Driver Function ` `int` `main() ` `{ ` `    ``int` `N = 9; ` `    ``triangle(maxHeight(N)); ` `    ``return` `0; ` `} `

## Java

 `// Java code for printing the ` `// Triangle Pattern using last term N ` `import` `java.util.*; ` ` `  `class` `GFG ` `{ ` ` `  `// Function to demonstrate printing pattern ` `static` `void` `triangle(``int` `n) ` `{ ` `    ``// number of spaces ` `    ``int` `k = ``2` `* n - ``2``; ` ` `  `    ``// character to be printed ` `    ``int` `ch = ``1``; ` ` `  `    ``// outer loop to handle number of rows ` `    ``// n in this case ` `    ``for` `(``int` `i = ``0``; i < n; i++)  ` `    ``{ ` ` `  `        ``// inner loop to handle number spaces ` `        ``// values changing acc. to requirement ` `        ``for` `(``int` `j = ``0``; j < k; j++) ` `            ``System.out.print(``" "``); ` ` `  `        ``// decrementing k after each loop ` `        ``k = k - ``1``; ` ` `  `        ``// inner loop to handle number of columns ` `        ``// values changing acc. to outer loop ` `        ``for` `(``int` `j = ``0``; j <= i; j++)  ` `        ``{ ` `            ``// printing stars ` `            ``System.out.print(ch++ + ``" "``); ` `        ``} ` ` `  `        ``// ending line after each row ` `        ``System.out.println(); ` `    ``} ` `} ` ` `  `// Function to find the max height ` `// or the number of lines ` `// in the triangle pattern ` `static` `int` `maxHeight(``int` `n) ` `{ ` `    ``return` `(((``int``)Math.sqrt(``1` `+ ``8.0` `* n)) - ``1``) / ``2``; ` `} ` ` `  `// Driver Code ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``int` `N = ``9``; ` `    ``triangle(maxHeight(N)); ` `} ` `} ` ` `  `// This code is contributed by PrinciRaj1992 `

## Python3

 `# Python3 code for printing the  ` `# Triangle Pattern using last term N  ` `from` `math ``import` `sqrt ` ` `  `# Function to demonstrate printing pattern  ` `def` `triangle(n) :  ` ` `  `    ``# number of spaces  ` `    ``k ``=` `2` `*` `n ``-` `2``;  ` ` `  `    ``# character to be printed  ` `    ``ch ``=` `1``;  ` ` `  `    ``# outer loop to handle number of rows  ` `    ``# n in this case  ` `    ``for` `i ``in` `range``(n) : ` ` `  `        ``# inner loop to handle number spaces  ` `        ``# values changing acc. to requirement  ` `        ``for` `j ``in` `range``(k) : ` `            ``print``(``" "``, end ``=` `"");  ` ` `  `        ``# decrementing k after each loop  ` `        ``k ``=` `k ``-` `1``;  ` ` `  `        ``# inner loop to handle number of columns  ` `        ``# values changing acc. to outer loop  ` `        ``for` `j ``in` `range``(i ``+` `1``) : ` `             `  `            ``# printing stars  ` `            ``print``(ch, end ``=` `" "``);  ` `            ``ch ``+``=` `1``; ` `             `  `        ``# ending line after each row ` `        ``print``()  ` ` `  `# Function to find the max height  ` `# or the number of lines  ` `# in the triangle pattern  ` `def` `maxHeight(n) :  ` `    ``ans ``=` `(sqrt(``1` `+` `8.0` `*` `n) ``-` `1``) ``/``/` `2``; ` `    ``return` `int``(ans);  ` ` `  `# Driver Code ` `if` `__name__ ``=``=` `"__main__"` `:  ` ` `  `    ``N ``=` `9``;  ` `    ``triangle(maxHeight(N));  ` `     `  `# This code is contributed by AnkitRai01 `

## C#

 `// C# code for printing the ` `// Triangle Pattern using last term N ` `using` `System; ` `     `  `class` `GFG ` `{ ` ` `  `// Function to demonstrate printing pattern ` `static` `void` `triangle(``int` `n) ` `{ ` `    ``// number of spaces ` `    ``int` `k = 2 * n - 2; ` ` `  `    ``// character to be printed ` `    ``int` `ch = 1; ` ` `  `    ``// outer loop to handle number of rows ` `    ``// n in this case ` `    ``for` `(``int` `i = 0; i < n; i++)  ` `    ``{ ` ` `  `        ``// inner loop to handle number spaces ` `        ``// values changing acc. to requirement ` `        ``for` `(``int` `j = 0; j < k; j++) ` `            ``Console.Write(``" "``); ` ` `  `        ``// decrementing k after each loop ` `        ``k = k - 1; ` ` `  `        ``// inner loop to handle number of columns ` `        ``// values changing acc. to outer loop ` `        ``for` `(``int` `j = 0; j <= i; j++)  ` `        ``{ ` `            ``// printing stars ` `            ``Console.Write(ch++ + ``" "``); ` `        ``} ` ` `  `        ``// ending line after each row ` `        ``Console.WriteLine(); ` `    ``} ` `} ` ` `  `// Function to find the max height ` `// or the number of lines ` `// in the triangle pattern ` `static` `int` `maxHeight(``int` `n) ` `{ ` `    ``return` `(((``int``)Math.Sqrt(1 + 8.0 * n)) - 1) / 2; ` `} ` ` `  `// Driver Code ` `public` `static` `void` `Main(String[] args) ` `{ ` `    ``int` `N = 9; ` `    ``triangle(maxHeight(N)); ` `} ` `} ` ` `  `// This code is contributed by Princi Singh `

Output:

```    1
2 3
4 5 6
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

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.