Count the number of possible triangles
To count the number of possible triangles, we need to know the conditions that must be satisfied for three line segments to form a triangle.
According to the triangle inequality theorem, the sum of the lengths of any two sides of a triangle must be greater than the length of the third side. That is, if we have three line segments of lengths a, b, and c, then they can form a triangle if and only if:
a + b > c b + c > a a + c > b
If any of these conditions is not met, the three line segments cannot form a triangle.
Let's say we have n line segments. To count the number of possible triangles, we need to choose three of these line segments and check whether they satisfy the triangle inequality theorem. We can do this by looping over all possible combinations of three line segments and counting the number of valid combinations.
Here given code implementation process.
// C program
// Count the number of possible triangles
#include <stdio.h>
//Display array element
void display(int collection[], int size)
{
for (int i = 0; i < size; i++)
{
printf(" %d", collection[i]);
}
printf("\n");
}
//Find number of triangles are possible in given collection
void possible_triangles(int collection[], int size)
{
if (size < 2)
{
return;
}
//Display array data
display(collection, size);
// Loop controlling variables
int first, second, third;
// Triangle counter
int triangle = 0;
for (first = 0; first < size; ++first)
{
for (second = first + 1; second < size; ++second)
{
for (third = second + 1; third < size; ++third)
{
if (collection[first] + collection[second] > collection[third] && collection[second] + collection[third] > collection[first] && collection[first] + collection[third] > collection[second])
{
triangle++;
}
}
}
}
//Print calculated result
printf(" Possible Triangles : %d \n\n", triangle);
}
int main()
{
int collection1[] = {
5 , 9 , 2 , 7 , 8 , 3
};
int collection2[] = {
7 , 3 , 9 , 2 , 55 , 23 , 12 , 4
};
//Test case
int size = sizeof(collection1) / sizeof(collection1[0]);
possible_triangles(collection1, size);
size = sizeof(collection2) / sizeof(collection2[0]);
possible_triangles(collection2, size);
return 0;
}
Output
5 9 2 7 8 3
Possible Triangles : 10
7 3 9 2 55 23 12 4
Possible Triangles : 5
/*
Java program
Count the number of possible triangles
*/
class Triangles
{
//Display array element
public void display(int[] collection, int size)
{
for (int i = 0; i < size; i++)
{
System.out.print(" " + collection[i]);
}
System.out.print("\n");
}
//Find number of triangles are possible in given collection
public void possible_triangles(int[] collection, int size)
{
if (size < 2)
{
return;
}
//Display array data
display(collection, size);
// Loop controlling variables
int first, second, third;
// Triangle counter
int triangle = 0;
for (first = 0; first < size; ++first)
{
for (second = first + 1; second < size; ++second)
{
for (third = second + 1; third < size; ++third)
{
if (collection[first] + collection[second] > collection[third] && collection[second] + collection[third] > collection[first] && collection[first] + collection[third] > collection[second])
{
triangle++;
}
}
}
}
//Print calculated result
System.out.print(" Possible Triangles : " + triangle + " \n\n");
}
public static void main(String[] args)
{
Triangles obj = new Triangles();
int[] collection1 = {
5 , 9 , 2 , 7 , 8 , 3
};
int[] collection2 = {
7 , 3 , 9 , 2 , 55 , 23 , 12 , 4
};
//Test case
int size = collection1.length;
obj.possible_triangles(collection1, size);
size = collection2.length;
obj.possible_triangles(collection2, size);
}
}
Output
5 9 2 7 8 3
Possible Triangles : 10
7 3 9 2 55 23 12 4
Possible Triangles : 5
//Include header file
#include <iostream>
using namespace std;
/*
C++ program
Count the number of possible triangles
*/
class Triangles
{
public:
//Display array element
void display(int collection[], int size)
{
for (int i = 0; i < size; i++)
{
cout << " " << collection[i];
}
cout << "\n";
}
//Find number of triangles are possible in given collection
void possible_triangles(int collection[], int size)
{
if (size < 2)
{
return;
}
//Display array data
this->display(collection, size);
// Loop controlling variables
int first, second, third;
// Triangle counter
int triangle = 0;
for (first = 0; first < size; ++first)
{
for (second = first + 1; second < size; ++second)
{
for (third = second + 1; third < size; ++third)
{
if (collection[first] + collection[second] > collection[third] && collection[second] + collection[third] > collection[first] && collection[first] + collection[third] > collection[second])
{
triangle++;
}
}
}
}
//Print calculated result
cout << " Possible Triangles : " << triangle << " \n\n";
}
};
int main()
{
Triangles obj = Triangles();
int collection1[] = {
5 , 9 , 2 , 7 , 8 , 3
};
int collection2[] = {
7 , 3 , 9 , 2 , 55 , 23 , 12 , 4
};
//Test case
int size = sizeof(collection1) / sizeof(collection1[0]);
obj.possible_triangles(collection1, size);
size = sizeof(collection2) / sizeof(collection2[0]);
obj.possible_triangles(collection2, size);
return 0;
}
Output
5 9 2 7 8 3
Possible Triangles : 10
7 3 9 2 55 23 12 4
Possible Triangles : 5
//Include namespace system
using System;
/*
C# program
Count the number of possible triangles
*/
class Triangles
{
//Display array element
public void display(int[] collection, int size)
{
for (int i = 0; i < size; i++)
{
Console.Write(" " + collection[i]);
}
Console.Write("\n");
}
//Find number of triangles are possible in given collection
public void possible_triangles(int[] collection, int size)
{
if (size < 2)
{
return;
}
//Display array data
display(collection, size);
// Loop controlling variables
int first, second, third;
// Triangle counter
int triangle = 0;
for (first = 0; first < size; ++first)
{
for (second = first + 1; second < size; ++second)
{
for (third = second + 1; third < size; ++third)
{
if (collection[first] + collection[second] > collection[third] && collection[second] + collection[third] > collection[first] && collection[first] + collection[third] > collection[second])
{
triangle++;
}
}
}
}
//Print calculated result
Console.Write(" Possible Triangles : " + triangle + " \n\n");
}
public static void Main(String[] args)
{
Triangles obj = new Triangles();
int[] collection1 = {
5 , 9 , 2 , 7 , 8 , 3
};
int[] collection2 = {
7 , 3 , 9 , 2 , 55 , 23 , 12 , 4
};
//Test case
int size = collection1.Length;
obj.possible_triangles(collection1, size);
size = collection2.Length;
obj.possible_triangles(collection2, size);
}
}
Output
5 9 2 7 8 3
Possible Triangles : 10
7 3 9 2 55 23 12 4
Possible Triangles : 5
<?php
/*
Php program
Count the number of possible triangles
*/
class Triangles
{
//Display array element
public function display( & $collection, $size)
{
for ($i = 0; $i < $size; $i++)
{
echo " ". $collection[$i];
}
echo "\n";
}
//Find number of triangles are possible in given collection
public function possible_triangles( & $collection, $size)
{
if ($size < 2)
{
return;
}
//Display array data
$this->display($collection, $size);
// Triangle counter
$triangle = 0;
for ($first = 0; $first < $size; ++$first)
{
for ($second = $first + 1; $second < $size; ++$second)
{
for ($third = $second + 1; $third < $size; ++$third)
{
if ($collection[$first] + $collection[$second] > $collection[$third] && $collection[$second] + $collection[$third] > $collection[$first] && $collection[$first] + $collection[$third] > $collection[$second])
{
$triangle++;
}
}
}
}
//Print calculated result
echo " Possible Triangles : ". $triangle ." \n\n";
}
}
function main()
{
$obj = new Triangles();
$collection1 = array(5, 9, 2, 7, 8, 3);
$collection2 = array(7, 3, 9, 2, 55, 23, 12, 4);
//Test case
$size = count($collection1);
$obj->possible_triangles($collection1, $size);
$size = count($collection2);
$obj->possible_triangles($collection2, $size);
}
main();
Output
5 9 2 7 8 3
Possible Triangles : 10
7 3 9 2 55 23 12 4
Possible Triangles : 5
/*
Node Js program
Count the number of possible triangles
*/
class Triangles
{
//Display array element
display(collection, size)
{
for (var i = 0; i < size; i++)
{
process.stdout.write(" " + collection[i]);
}
process.stdout.write("\n");
}
//Find number of triangles are possible in given collection
possible_triangles(collection, size)
{
if (size < 2)
{
return;
}
//Display array data
this.display(collection, size);
// Triangle counter
var triangle = 0;
for (first = 0; first < size; ++first)
{
for (second = first + 1; second < size; ++second)
{
for (third = second + 1; third < size; ++third)
{
if (collection[first] + collection[second] > collection[third] && collection[second] + collection[third] > collection[first] && collection[first] + collection[third] > collection[second])
{
triangle++;
}
}
}
}
//Print calculated result
process.stdout.write(" Possible Triangles : " + triangle + " \n\n");
}
}
function main()
{
var obj = new Triangles();
var collection1 = [5, 9, 2, 7, 8, 3];
var collection2 = [7, 3, 9, 2, 55, 23, 12, 4];
//Test case
var size = collection1.length;
obj.possible_triangles(collection1, size);
size = collection2.length;
obj.possible_triangles(collection2, size);
}
main();
Output
5 9 2 7 8 3
Possible Triangles : 10
7 3 9 2 55 23 12 4
Possible Triangles : 5
# Python 3 program
# Count the number of possible triangles
class Triangles :
# Display array element
def display(self, collection, size) :
i = 0
while (i < size) :
print(" ", collection[i], end = "")
i += 1
print("\n", end = "")
# Find number of triangles are possible in given collection
def possible_triangles(self, collection, size) :
if (size < 2) :
return
# Display array data
self.display(collection, size)
# Loop controlling variables
first = 0
second = 0
third = 0
# Triangle counter
triangle = 0
while (first < size) :
second = first + 1
while (second < size) :
third = second + 1
while (third < size) :
if (collection[first] + collection[second] > collection[third]
and collection[second] + collection[third] > collection[first]
and collection[first] + collection[third] > collection[second]) :
triangle += 1
third += 1
second += 1
first += 1
# Print calculated result
print(" Possible Triangles : ", triangle ," \n\n", end = "")
def main() :
obj = Triangles()
collection1 = [5, 9, 2, 7, 8, 3]
collection2 = [7, 3, 9, 2, 55, 23, 12, 4]
# Test case
size = len(collection1)
obj.possible_triangles(collection1, size)
size = len(collection2)
obj.possible_triangles(collection2, size)
if __name__ == "__main__": main()
Output
5 9 2 7 8 3
Possible Triangles : 10
7 3 9 2 55 23 12 4
Possible Triangles : 5
# Ruby program
# Count the number of possible triangles
class Triangles
# Display array element
def display(collection, size)
i = 0
while (i < size)
print(" ", collection[i])
i += 1
end
print("\n")
end
# Find number of triangles are possible in given collection
def possible_triangles(collection, size)
if (size < 2)
return
end
# Display array data
self.display(collection, size)
# Loop controlling variables
first = 0
second = 0
third = 0
# Triangle counter
triangle = 0
while (first < size)
second = first + 1
while (second < size)
third = second + 1
while (third < size)
if (collection[first] + collection[second] > collection[third] && collection[second] + collection[third] > collection[first] && collection[first] + collection[third] > collection[second])
triangle += 1
end
third += 1
end
second += 1
end
first += 1
end
# Print calculated result
print(" Possible Triangles : ", triangle ," \n\n")
end
end
def main()
obj = Triangles.new()
collection1 = [5, 9, 2, 7, 8, 3]
collection2 = [7, 3, 9, 2, 55, 23, 12, 4]
# Test case
size = collection1.length
obj.possible_triangles(collection1, size)
size = collection2.length
obj.possible_triangles(collection2, size)
end
main()
Output
5 9 2 7 8 3
Possible Triangles : 10
7 3 9 2 55 23 12 4
Possible Triangles : 5
/*
Scala program
Count the number of possible triangles
*/
class Triangles
{
//Display array element
def display(collection: Array[Int], size: Int): Unit = {
var i: Int = 0;
while (i < size)
{
print(" " + collection(i));
i += 1;
}
print("\n");
}
//Find number of triangles are possible in given collection
def possible_triangles(collection: Array[Int], size: Int): Unit = {
if (size < 2)
{
return;
}
//Display array data
display(collection, size);
// Loop controlling variables
var first: Int = 0;
var second: Int = 0;
var third: Int = 0;
// Triangle counter
var triangle: Int = 0;
while (first < size)
{
second = first + 1;
while (second < size)
{
third = second + 1;
while (third < size)
{
if (collection(first) + collection(second) > collection(third) && collection(second) + collection(third) > collection(first) && collection(first) + collection(third) > collection(second))
{
triangle += 1;
}
third += 1;
}
second += 1;
}
first += 1;
}
//Print calculated result
print(" Possible Triangles : " + triangle + " \n\n");
}
}
object Main
{
def main(args: Array[String]): Unit = {
var obj: Triangles = new Triangles();
var collection1: Array[Int] = Array(5, 9, 2, 7, 8, 3);
var collection2: Array[Int] = Array(7, 3, 9, 2, 55, 23, 12, 4);
//Test case
var size: Int = collection1.length;
obj.possible_triangles(collection1, size);
size = collection2.length;
obj.possible_triangles(collection2, size);
}
}
Output
5 9 2 7 8 3
Possible Triangles : 10
7 3 9 2 55 23 12 4
Possible Triangles : 5
/*
Swift 4 program
Count the number of possible triangles
*/
class Triangles
{
//Display array element
func display(_ collection: [Int], _ size: Int)
{
var i: Int = 0;
while (i < size)
{
print(" ", collection[i], terminator: "");
i += 1;
}
print("\n", terminator: "");
}
//Find number of triangles are possible in given collection
func possible_triangles(_ collection: [Int], _ size: Int)
{
if (size < 2)
{
return;
}
//Display array data
self.display(collection, size);
// Loop controlling variables
var first: Int = 0;
var second: Int = 0;
var third: Int = 0;
// Triangle counter
var triangle: Int = 0;
while (first < size)
{
second = first + 1;
while (second < size)
{
third = second + 1;
while (third < size)
{
if (collection[first] + collection[second] > collection[third] && collection[second] + collection[third] > collection[first] && collection[first] + collection[third] > collection[second])
{
triangle += 1;
}
third += 1;
}
second += 1;
}
first += 1;
}
//Print calculated result
print(" Possible Triangles : ", triangle ," \n");
}
}
func main()
{
let obj: Triangles = Triangles();
let collection1: [Int] = [5, 9, 2, 7, 8, 3];
let collection2: [Int] = [7, 3, 9, 2, 55, 23, 12, 4];
//Test case
var size: Int = collection1.count;
obj.possible_triangles(collection1, size);
size = collection2.count;
obj.possible_triangles(collection2, size);
}
main();
Output
5 9 2 7 8 3
Possible Triangles : 10
7 3 9 2 55 23 12 4
Possible Triangles : 5
Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.
New Comment