Scala Programming: Count the number of possible triangles from a given unsorted array of positive integers
Scala Programming Array Exercise-31 with Solution
Write a Scala program to count the number of possible triangles from a given unsorted array of positive integers.
Note: The triangle inequality states that the sum of the lengths of any two sides of a triangle must be greater than or equal to the length of the third side.
Sample Solution:
Scala Code:
object Scala_Array {
def main(args: Array[String]): Unit = {
val nums = Array(6, 7, 9, 16, 25, 12, 30, 40)
val n = nums.length;
println("Original array:")
for (x <- nums) {
print(s"${x}, ")
}
scala.util.Sorting.quickSort(nums)
// Initialize count of triangles
var ctr = 0;
var x = 0;
for (i <- 0 to n - 2) {
x = i + 2;
for (j <- i + 1 to n - 1) {
while (x < n && nums(i) + nums(j) > nums(x)) x = x + 1;
ctr += x - j - 1;
}
}
println(s"\nTotal number of triangles: ${ctr}");
}
}
Sample Output:
Original array: 6, 7, 9, 16, 25, 12, 30, 40, Total number of triangles: 17
Scala Code Editor :
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Scala program to find all combination of four elements of a given array whose sum is equal to a given value.
Next: Write a Java program to arrange the elements of a given array of integers where all positive integers appear before all the negative integers.
What is the difficulty level of this exercise?
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/scala-exercises/array/scala-array-exercise-31.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics