You are on page 1of 12

Total number of triangles formed when there are H

horizontal and V vertical lines


geeksforgeeks.org/total-number-of-triangles-formed-when-there-are-h-horizontal-and-v-vertical-lines/

April 12, 2019

View Discussion

Improve Article

Save Article

Last Updated :
07 Apr, 2021

Read
Discuss
View Discussion

Improve Article

Save Article

Given a triangle ABC. H horizontal lines from side AB to AC (as shown in fig.) and V
vertical lines from vertex A to side BC are drawn, the task is to find the total no. of
triangles formed.
Examples: 

1/12
Input: H = 2, V = 2 
Output: 18 

As we see in the image above, total triangles formed are 18.


Input: H = 3, V = 4 
Output: 60 

Recommended: Please try your approach on {IDE} first, before moving on to the solution.
Approach: As we see in the images below, we can derive a general formula for above
problem: 

1. If there are only h horizontal lines then total triangles are (h + 1).
2. If there are only v vertical lines then total triangles are (v + 1) * (v + 2) / 2.. 
 

1. So, total triangles are Triangles formed by horizontal lines * Triangles formed
by vertical lines i.e. (h + 1) * (( v + 1) * (v + 2) / 2).

2/12
Below is the implementation of the above approach:
 

C++

3/12
// C++ implementation of the approach

#include <bits/stdc++.h>

using namespace std;

#define LLI long long int

// Function to return total triangles

LLI totalTriangles(LLI h, LLI v)

// Only possible triangle is

// the given triangle

if (h == 0 && v == 0)

return 1;

// If only vertical lines are present

if (h == 0)

return ((v + 1) * (v + 2) / 2);

// If only horizontal lines are present

if (v == 0)

return (h + 1);

// Return total triangles

LLI Total = (h + 1) * ((v + 1) * (v + 2) / 2);

return Total;

// Driver code

int main()

int h = 2, v = 2;

cout << totalTriangles(h, v);

return 0;

4/12
Java

5/12
// Java implementation of the approach

class GFG {

// Function to return total triangles

public static int totalTriangles( int h, int v)

// Only possible triangle is

// the given triangle

if (h == 0 && v == 0 )

return 1 ;

// If only vertical lines are present

if (h == 0 )

return ((v + 1 ) * (v + 2 ) / 2 );

// If only horizontal lines are present

if (v == 0 )

return (h + 1 );

// Return total triangles

int total = (h + 1 ) * ((v + 1 ) * (v + 2 ) / 2 );

return total;

// Driver code

public static void main(String[] args)

int h = 2 , v = 2 ;

System.out.print(totalTriangles(h, v));

C#

6/12

7/12
// C# implementation of the approach

using System;

class GFG

// Function to return total triangles

public static int totalTriangles( int h, int v)

// Only possible triangle is

// the given triangle

if (h == 0 && v == 0)

return 1;

// If only vertical lines are present

if (h == 0)

return ((v + 1) * (v + 2) / 2);

// If only horizontal lines are present

if (v == 0)

return (h + 1);

// Return total triangles

int total = (h + 1) * ((v + 1) * (v + 2) / 2);

return total;

// Driver code

public static void Main()

int h = 2, v = 2;

Console.Write(totalTriangles(h, v));

// This code is contributed by Ryuga

8/12
Python3

# Python3 implementation of the approach

# Function to return total triangles

def totalTriangles(h, v):

# Only possible triangle is

# the given triangle

if (h = = 0 and v = = 0 ):

return 1

# If only vertical lines are present

if (h = = 0 ):

return ((v + 1 ) * (v + 2 ) / 2 )

# If only horizontal lines are present

if (v = = 0 ):

return (h + 1 )

# Return total triangles

total = (h + 1 ) * ((v + 1 ) * (v + 2 ) / 2 )

return total

# Driver code

h = 2

v = 2

print ( int (totalTriangles(h, v)))

PHP

9/12

<?php

// PHP implementation of the above approach

// Function to return total triangles

function totalTriangles( $h , $v )

// Only possible triangle is

// the given triangle

if ( $h == 0 && $v == 0)

return 1;

// If only vertical lines are present

if ( $h == 0)

return (( $v + 1) * ( $v + 2) / 2);

// If only horizontal lines are present

if ( $v == 0)

return ( $h + 1);

// Return total triangles

$Total = ( $h + 1) * (( $v + 1) *

( $v + 2) / 2);

return $Total ;

// Driver code

$h = 2;

$v = 2;

echo totalTriangles( $h , $v );

// This code is contributed by Arnab Kundu

?>

10/12
Javascript

<script>

// javascript implementation of the approach  

// Function to return total triangles

function totalTriangles(h , v)

// Only possible triangle is

// the given triangle

if (h == 0 && v == 0)

return 1;

// If only vertical lines are present

if (h == 0)

return ((v + 1) * (v + 2) / 2);

// If only horizontal lines are present

if (v == 0)

return (h + 1);

// Return total triangles

var total = (h + 1) * ((v + 1) * (v + 2) / 2);

return total;

// Driver code

var h = 2, v = 2;

document.write(totalTriangles(h, v));

// This code contributed by shikhasingrajput

</script>

11/12
Output: 

18

Time Complexity: O(1) 


Auxiliary Space: O(1)


 

My Personal Notes
arrow_drop_up

Article Contributed By :

Chandan_Agrawal
@Chandan_Agrawal
Vote for difficulty

Report Issue

12/12

You might also like