Write a Program to Print the Following Triangle

By | October 3, 2021

Problem Statement 1

We need to write a program in C, C++, and Python that can print the following triangle pattern, based on the user entered height.

Let say the height of the triangle is 8

Input:

height =8

Output

*
**
***
****
*****
******
*******
********

Algorithm

The algorithm of this problem is pretty straightforward.

Vamware
  • Ask the user to enter the height of the triangle.
  • Create an Outer for loop i from range 1 to h, where h is the height of the triangle.
  • Inside the Outer loop create an inner loop j from range 1 to i, that will print the number of stars.

C Program to Print the Triangle

#include <stdio.h>
int main()
{
	int h, i, j;
	
	//ask user to input the height of the triangle
	printf("Enter the height of Triangle: ");
	scanf("%d", &h);
	
	//outer loop i
	for(i =1; i<=h; i++)
	{
		for(j=1; j<=i; j++)
		{
			printf("*");
		}
		
		//after printing every row of stars
		//we need to print new row of stars in a new line
		printf("\n");
	}
	
    return 0;
}

Output

Enter the height of Triangle: 8
*
**
***
****
*****
******
*******
********

C++ Program to Print the Triangle

#include<iostream>
using namespace std;

int main()
{
	int h, i, j;
	
	//ask user to input the height of the triangle
	cout<<"Enter the height of Triangle: "; cin>>h;
	
	//outer loop i
	for(i =1; i<=h; i++)
	{
		//inner loop
		for(j=1; j<=i; j++)
		{
			cout<<"*";
		}
		
		//after printing every row of stars
		//we need to print new row of stars in a new line
		cout<<endl;
	}
    return 0;
}

Output

Vamware
Enter the height of Triangle: 9
*
**
***
****
*****
******
*******
********
*********

Python Program to Print the Triangle

#input the height of the triangle
h = int(input("Enter the Height of the triangle: "))

#outer loop
for i in range(1,h+1):
    #inner loop
    for j in range(1, i+1):
        print("*", end="")

    #print a new line after printing a row of stars
    print()

Output

Enter the Height of the triangle: 10
*
**
***
****
*****
******
*******
********
*********
**********

Complexity Analysis

  • Time Complexity: As we are using a nested loop in the program which makes the time complexity O(N2).
  • Space Complexity: There is no extra space occupancy in the program so the space complexity is constant.

Problem Statement 2

Now we need to print an inverted tringle of the above triangle pattern.

Input:

height =8

Output

       *
      **
     ***
    ****
   *****
  ******
 *******
********

Algorithm

To make such a pattern we require 3 loops one outer loop i and two inner loops j and k. Where the j loop will be responsible for printing white spaces and k for printing stars.

  • Ask the user to enter the height of the triangle h.
  • Create an outer for loop i from range 1 to h.
  • Inside the outer loop create an inner nested loop j from range 1 to h-i, and it will print the white spaces.
  • Inside the outer loop, we also need to create a nested loop k from range 1 to i, that will print the stars.
  • Both j and k loops will be nested to i and have the same level.

 

C Program to Print the Triangle

#include <stdio.h>
int main()
{
	int h, i, j, k;
	
	//ask user to input the height of the triangle
	printf("Enter the height of Triangle: ");
	scanf("%d", &h);
	
	//outer loop i
	for(i =1; i<=h; i++)
	{
		//inner loop 1
		//to print white space
		for(j=1; j<=h-i; j++)
		{
			printf(" ");
		}
		
		//inner loop 2 
		//to print stars
		for(k=1; k<=i; k++)
		{
			printf("*");
		}
		//after printing every row of stars
		//we need to print new row of stars in a new line
		printf("\n");
	}
	
    return 0;
}

Output

Enter the height of Triangle: 18
                 *
                **
               ***
              ****
             *****
            ******
           *******
          ********
         *********
        **********
       ***********
      ************
     *************
    **************
   ***************
  ****************
 *****************
******************

C++ Program to Print the Triangle

#include<iostream>
using namespace std;

int main()
{
	int h, i, j,k;
	
	//ask user to input the height of the triangle
	cout<<"Enter the height of Triangle: "; cin>>h;
	
	//outer loop i
	for(i =1; i<=h; i++)
	{
		//inner loop 1
		// to print white spaces
		for(j=1; j<=h-i; j++)
		{
			cout<<" ";
		}
		
		//inner loop 2
		// to print the stars
		for(k =1; k<=i; k++)
		{
			cout<<"*";
		}
		//after printing every row of stars
		//we need to print new row of stars in a new line
		cout<<endl;
	}
    return 0;
}

Output

Enter the height of Triangle: 6
     *
    **
   ***
  ****
 *****
******

Python Program to Print the Triangle

#input the height of the triangle
h = int(input("Enter the Height of the triangle: "))

#outer loop
for i in range(1,h+1):

    #inner loop 1 to print white spaces
    for j in range(1, (h-i)+1):
        print(" ", end="")

    #inner loop 2, to print stars
    for k in range(1, i+1):
        print("*", end="")


    #print a new line after printing a row of stars
    print()

Output

Enter the Height of the triangle: 5
    *
   **
  ***
 ****
*****

Complexity Analysis

Time Complexity: O(N2), The j and k loops are in the same level nested to the i loop so the time complexity of the above program is O(N2).

Space Complexity: O(1)

Problem Statement 3

Now we need to print a hollow triangle based on the height input by the user.

Example 

Input

h = 6

Output

     *
    * *
   *   *
  *     *
 *       *
***********

Algorithm

  • Ask the user to enter the height of the triangle h.
  • Create a new variable space s and set its value equal to h (height of the triangle).
  • Create an outer loop i from range 1 to h.
  • Inside the Outer loop create the inner-loop-1 j from 1 to s-1 that will print the white spaces before every first star of the row.
  • Inside the outer loop in the same level of inner-loop-1, create another inner-loop-2 k that will range from 1 to 2*i, and it will print starts for only values  k==1 || k==2*i-1 || i==height and for the rest of the values, it will print white spaces.
  • With every iteration of the outer loop decrease the value of space s by 1.

C Program to Print the Triangle

#include <stdio.h>
int main()
{
	int h, s, i, j, k;
	
	//ask user to input the height of the triangle
	printf("Enter the height of Triangle: ");
	scanf("%d", &h);
	
	// set the space value equal to the height 
	s=h;
	//outer loop i
	for(i =1; i<=h; i++)
	{
		//inner loop 1
		//to print white space
		for(j=1; j<=s-1; j++)
		{
			printf(" ");
		}
		
		//inner loop 2 
		//to print stars and spaces between the stars
		for(k=1; k<=2*i-1; k++)
		{
			if(k==1 || k==2*i-1 || i==h)
				printf("*");
			else
				printf(" ");
		}
		
		//decrement the value of s by 1
		s--;
		
		//after printing every row of stars
		//we need to print new row of stars in a new line
		printf("\n");
	}
	
    return 0;
}

Output

Enter the height of Triangle: 9
        *
       * *
      *   *
     *     *
    *       *
   *         *
  *           *
 *             *
*****************

C++ Program to Print the Triangle

#include<iostream>
using namespace std;

int main()
{
	int h,s, i, j,k;
	
	//ask user to input the height of the triangle
	cout<<"Enter the height of Triangle: "; cin>>h;
	
	// set the space value equal to the height 
	s=h;
	
	//outer loop i
	for(i =1; i<=h; i++)
	{
		//inner loop 1
		// to print white spaces
		for(j=1; j<=s-1; j++)
		{
			cout<<" ";
		}
		
		//inner loop 2
		// to print the stars and spaces between stars
		for(k=1; k<=2*i-1; k++)
		{
			if(k==1 || k==2*i-1 || i==h)
				printf("*");
			else
				printf(" ");
		}
		
		//decrement the value of s by 1
		s--;
		//after printing every row of stars
		//we need to print new row of stars in a new line
		cout<<endl;
	}
    return 0;
}

Output

Enter the height of Triangle: 7
      *
     * *
    *   *
   *     *
  *       *
 *         *
*************

Python Program to Print the Triangle

#input the height of the triangle
h = int(input("Enter the Height of the triangle: "))

#set the space variable value equal to the height
s= h

#outer loop
for i in range(1,h+1):
    #inner loop 1 to print white spaces
    for j in range(1, s):
        print(" ", end="")
    for k in range(1, i*2):
        if k==1 or k==2*i-1 or i==h:
            print("*", end="")
        else:
            print(" ", end="")

    #decrement the value of space by 1
    s-=1
    #print a new line after printing a row of stars
    print()

Output

Enter the Height of the triangle: 10
         *
        * *
       *   *
      *     *
     *       *
    *         *
   *           *
  *             *
 *               *
*******************

Complexity Analysis

  • Time Complexity: O(N2),
  • Space Complexity: O(1)

Wrapping UP!

In this Programming tutorial, we learned how to print a given tringle pattern in C, C++, and Python. Printing a triangle pattern is one of the classical programming interview questions, there are many tringle patterns that we can print using nested loops. These triangle patterns are also known as pyramid patterns. To know how to print different types of Pyramid patterns click here.

People are also reading:

Author: Vinay

I am a Full Stack Developer with a Bachelor's Degree in Computer Science, who also loves to write technical articles that can help fellow developers.

Leave a Reply

Your email address will not be published.