Given a rectangle of dimensions L and W. The task is to find the maximum area of a rectangle that can be circumscribed about a given rectangle with dimensions L and W.
Examples:
Input: L = 10, W = 10
Output: 200Input: L = 18, W = 12
Output: 450
Approach: Let below is the given rectangle EFGH of dimensions L and W. We have to find the area of rectangle ABCD which is circumscribing rectangle EFGH.
In the above figure:
If then as GCF is right angled triangle.
Therefore,
=>
=>
Similarly,
Now, The area of rectangle ABCD is given by:
Area = AB * AD
Area = (AE + EB)*(AH + HD) …..(1)
According to the projection rule:
AE = L*sin(X)
EB = W*cos(X)
AH = L*cos(X)
HD = W*sin(X)
Substituting the value of the above projections in equation (1) we have:
Now to maximize the area, the value of sin(2X) must be maximum i.e., 1.
Therefore after substituting sin(2X) as 1 we have,
Below is the implementation of the above approach:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to find area of rectangle // inscribed another rectangle of // length L and width W double AreaofRectangle( int L, int W) { // Area of rectangle double area = (W + L) * (W + L) / 2; // Return the area return area; } // Driver Code int main() { // Given dimensions int L = 18; int W = 12; // Function call cout << AreaofRectangle(L, W); return 0; } // This code is contributed by Princi Singh |
Java
// Java program for the above approach import java.io.*; import java.util.*; class GFG{ // Function to find area of rectangle // inscribed another rectangle of // length L and width W static double AreaofRectangle( int L, int W) { // Area of rectangle double area = (W + L) * (W + L) / 2 ; // Return the area return area; } // Driver Code public static void main(String args[]) { // Given dimensions int L = 18 ; int W = 12 ; // Function call System.out.println(AreaofRectangle(L, W)); } } // This code is contributed by offbeat |
Python3
# Python3 program for the above approach # Function to find area of rectangle # inscribed another rectangle of # length L and width W def AreaofRectangle(L, W): # Area of rectangle area = (W + L) * (W + L) / 2 # Return the area return area # Driver Code if __name__ = = "__main__" : # Given Dimensions L = 18 W = 12 # Function Call print (AreaofRectangle(L, W)) |
C#
// C# program for the above approach using System; class GFG{ // Function to find area of rectangle // inscribed another rectangle of // length L and width W static double AreaofRectangle( int L, int W) { // Area of rectangle double area = (W + L) * (W + L) / 2; // Return the area return area; } // Driver Code public static void Main(String []args) { // Given dimensions int L = 18; int W = 12; // Function call Console.Write(AreaofRectangle(L, W)); } } // This code is contributed by shivanisinghss2110 |
Javascript
<script> // JavaScript program for the above approach // Function to find area of rectangle // inscribed another rectangle of // length L and width W function AreaofRectangle(L, W) { // Area of rectangle var area = parseFloat(((W + L) * (W + L)) / 2).toFixed(1); // Return the area return area; } // Driver Code // Given dimensions var L = 18; var W = 12; // Function call document.write(AreaofRectangle(L, W)); </script> |
450.0
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!