Given here is a right angle triangle with height l, base b & hypotenuse h, which inscribes a square which in turn inscribes a reuleaux triangle. The task is to find the maximum possible area of this reuleaux triangle.
Examples:
Input: l = 5, b = 12, h = 13 Output: 8.77914 Input: l = 3, b = 4, h = 5 Output: 2.07116
Approach: We know, the side of the square inscribed within a right angled triangle is, a = (l*b)/(l+b), please refer Area of a largest square fit in a right angle triangle.
Also, in the reuleaux triangle, x = a.
So, x = (l*b)/(l+b).
So, Area of the Reuleaux Triangle is, A = 0.70477*x^2 = 0.70477*((l*b)/(l+b))^2.
Below is the implementation of the above approach:
// C++ Program to find the biggest Reuleaux triangle // inscribed within in a square which in turn // is inscribed within a circle #include <bits/stdc++.h> using namespace std;
// Function to find the biggest reuleaux triangle float Area( float l, float b, float h)
{ // the height or base or hypotenuse
// cannot be negative
if (l < 0 || b < 0 || h < 0)
return -1;
// height of the reuleaux triangle
float x = (l * b) / (l + b);
// area of the reuleaux triangle
float A = 0.70477 * pow (x, 2);
return A;
} // Driver code int main()
{ float l = 5, b = 12, h = 13;
cout << Area(l, b, h) << endl;
return 0;
} |
// Java Program to find the biggest Reuleaux triangle // inscribed within in a square which in turn // is inscribed within a circle import java.util.*;
import java.text.DecimalFormat;
class GFG
{ // Function to find the biggest reuleaux triangle static double Area( double l, double b, double h)
{ // the height or base or hypotenuse
// cannot be negative
if (l < 0 || b < 0 || h < 0 )
return - 1 ;
// height of the reuleaux triangle
double x = (l * b) / (l + b);
// area of the reuleaux triangle
double A = 0.70477 * Math.pow(x, 2 );
return A;
} // Driver code public static void main(String args[])
{ double l = 5 , b = 12 , h = 13 ;
DecimalFormat df = new DecimalFormat( "#,###,##0.00000" );
System.out.println(df.format(Area(l, b, h)));
} } // This code is contributed by // Shashank_Sharma |
# Python3 Program to find the biggest # Reuleaux triangle inscribed within # in a square which in turn is inscribed # within a circle import math as mt
# Function to find the biggest # reuleaux triangle def Area(l, b, h):
# the height or base or hypotenuse
# cannot be negative
if (l < 0 or b < 0 or h < 0 ):
return - 1
# height of the reuleaux triangle
x = (l * b) / (l + b)
# area of the reuleaux triangle
A = 0.70477 * pow (x, 2 )
return A
# Driver code l, b, h = 5 , 12 , 13
print (Area(l, b, h))
# This code is contributed by # Mohit kumar 29 |
// C# Program to find the biggest Reuleaux triangle // inscribed within in a square which in turn // is inscribed within a circle using System;
class GFG
{ // Function to find the biggest reuleaux triangle static double Area( double l, double b, double h)
{ // the height or base or hypotenuse
// cannot be negative
if (l < 0 || b < 0 || h < 0)
return -1;
// height of the reuleaux triangle
double x = (l * b) / (l + b);
// area of the reuleaux triangle
double A = 0.70477 * Math.Pow(x, 2);
return A;
} // Driver code public static void Main()
{ double l = 5, b = 12, h = 13;
Console.WriteLine((Area(l, b, h)));
} } // This code is contributed by // Mukul Singh |
<?php // PHP Program to find the biggest // Reuleaux triangle inscribed within // in a square which in turn is // inscribed within a circle // Function to find the biggest // reuleaux triangle function Area( $l , $b , $h )
{ // the height or base or hypotenuse
// cannot be negative
if ( $l < 0 or $b < 0 or $h < 0)
return -1;
// height of the reuleaux triangle
$x = ( $l * $b ) / ( $l + $b );
// area of the reuleaux triangle
$A = 0.70477 * pow( $x , 2);
return $A ;
} // Driver code $l = 5; $b = 12; $h = 13;
echo Area( $l , $b , $h );
// This code is contributed by // anuj_67 ?> |
<script> // Javascript Program to find the biggest Reuleaux triangle // inscribed within in a square which in turn // is inscribed within a circle // Function to find the biggest reuleaux triangle function Area(l,b,h)
{ // the height or base or hypotenuse
// cannot be negative
if (l < 0 || b < 0 || h < 0)
return -1;
// height of the reuleaux triangle
let x = (l * b) / (l + b);
// area of the reuleaux triangle
let A = 0.70477 * Math.pow(x, 2);
return A;
} // Driver code let l = 5, b = 12, h = 13; document.write( Area(l,b,h).toFixed(5));
// This code contributed by Rajput-Ji </script> |
8.77914
Time Complexity: O(1)
Auxiliary Space: O(1)