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
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
- As:
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 <bits/stdc++.h>using namespace std;// Function to demonstrate printing patternvoid 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 patternint maxHeight(int n){ return (((int)sqrt(1 + 8.0 * n)) - 1) / 2;}// Driver Functionint main(){ int N = 9; triangle(maxHeight(N)); return 0;} |
Java
// Java code for printing the// Triangle Pattern using last term Nimport java.util.*;class GFG{// Function to demonstrate printing patternstatic 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 patternstatic int maxHeight(int n){ return (((int)Math.sqrt(1 + 8.0 * n)) - 1) / 2;}// Driver Codepublic 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 Codeif __name__ == "__main__" : N = 9; triangle(maxHeight(N)); # This code is contributed by AnkitRai01 |
C#
// C# code for printing the// Triangle Pattern using last term Nusing System; class GFG{// Function to demonstrate printing patternstatic 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 patternstatic int maxHeight(int n){ return (((int)Math.Sqrt(1 + 8.0 * n)) - 1) / 2;}// Driver Codepublic static void Main(String[] args){ int N = 9; triangle(maxHeight(N));}}// This code is contributed by Princi Singh |
Javascript
<script>// Javascript code for printing the// Triangle Pattern using last term N// Function to demonstrate printing patternfunction triangle(n){ // number of spaces var k = 2 * n - 2; // character to be printed var ch = 1; // outer loop to handle number of rows // n in this case for (var i = 0; i < n; i++) { // inner loop to handle number spaces // values changing acc. to requirement for (var j = 0; j < k; j++) document.write(" "); // decrementing k after each loop k = k - 1; // inner loop to handle number of columns // values changing acc. to outer loop for (var j = 0; j <= i; j++) { // printing stars document.write(ch++ + " "); } // ending line after each row document.write("<br>"); }}// Function to find the max height// or the number of lines// in the triangle patternfunction maxHeight(n){ return parseInt(((parseInt(Math.sqrt(1 + 8.0 * n))) - 1) / 2); }// Driver Functionvar N = 9;triangle(maxHeight(N));// This code is contributed by noob2000.</script> |
1 2 3 4 5 6
Time Complexity: O(n2)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

… [Trackback]
[…] Read More to that Topic: geeksforgeeks.org/printing-the-triangle-pattern-using-last-term-n/ […]