Given N planes. The task is to find the maximum number of line intersections that can be formed through the intersections of N planes.
Examples:
Input: N = 3
Output: 3
Input: N = 5
Output: 10
Approach:
Let there be N planes such that no 3 planes intersect in a single line of intersection and no 2 planes are parallel to each other. Adding ‘N+1’th plane to this space should be possible while retaining the above two conditions. In that case, this plane would intersect each of the N planes in ‘N’ distinct lines.
Thus, the ‘N+1’th plane could atmost add ‘N’ new lines to the total count of lines of intersection. Similarly, the Nth plane could add at most “N-1′ distinct lines of intersection. It is easy therefore to see that, for ‘N’ planes, the maximum number of lines of intersection could be:
(N-1) + (N-2) +...+ 1 = N*(N-1)/2
Below is the implementation of the above approach:
C++
// C++ implementation of the above approach #include <bits/stdc++.h> using namespace std; // Function to count maximum number of // intersections possible int countIntersections( int n) { return n * (n - 1) / 2; } // Driver Code int main() { int n = 3; cout << countIntersections(n); return 0; } |
Java
// Java implementation of the approach class GFG { // Function to count maximum number of // intersections possible static int countIntersections( int n) { return n * (n - 1 ) / 2 ; } // Driver Code public static void main (String[] args) { int n = 3 ; System.out.println(countIntersections(n)); } } // This code is contributed by AnkitRai01 |
Python3
# Python3 implementation of the above approach # Function to count maximum number of # intersections possible def countIntersections(n): return n * (n - 1 ) / / 2 # Driver Code n = 3 print (countIntersections(n)) # This code is contributed by mohit kumar |
C#
// C# implementation of the approach using System; class GFG { // Function to count maximum number of // intersections possible static int countIntersections( int n) { return n * (n - 1) / 2; } // Driver Code public static void Main (String[] args) { int n = 3; Console.WriteLine(countIntersections(n)); } } // This code is contributed by 29AjayKumar |
Javascript
<script> // Javascript implementation of the above approach // Function to count maximum number of // intersections possible function countIntersections(n) { return n * (n - 1) / 2; } // Driver Code var n = 3; document.write(countIntersections(n)); </script> |
3
Time Complexity: O(1)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!