Give a rectangle with length l & breadth b, which inscribes a rhombus, which in turn inscribes a circle. The task is to find the radius of this circle.
Examples:
Input: l = 5, b = 3 Output: 1.28624 Input: l = 6, b = 4 Output: 1.6641
Approach: From the figure, it is clear that diagonals, x & y, are equal to the length and breadth of the rectangle.
Also radius of the circle, r, inside a rhombus is = xy/2?(x^2+y^2).
So, radius of the circle in terms of l & b is = lb/2?(l^2+b^2).
Below is the implementation of the above approach:
// C++ implementation of above approach #include <bits/stdc++.h> using namespace std;
// Function to find the radius // of the inscribed circle float circleradius( float l, float b)
{ // the sides cannot be negative
if (l < 0 || b < 0)
return -1;
// radius of the circle
float r = (l * b) / (2 * sqrt (( pow (l, 2) + pow (b, 2))));
return r;
} // Driver code int main()
{ float l = 5, b = 3;
cout << circleradius(l, b) << endl;
return 0;
} |
// Java implementation of above approach import java.io.*;
class GFG {
// Function to find the radius // of the inscribed circle static float circleradius( float l, float b)
{ // the sides cannot be negative
if (l < 0 || b < 0 )
return - 1 ;
// radius of the circle
float r = ( float )((l * b) / ( 2 * Math.sqrt((Math.pow(l, 2 ) + Math.pow(b, 2 )))));
return r;
} // Driver code
public static void main (String[] args) {
float l = 5 , b = 3 ;
System.out.print (circleradius(l, b)) ;
}
} // This code is contributed by inder_verma.. |
# Python 3 implementation of # above approach from math import sqrt
# Function to find the radius # of the inscribed circle def circleradius(l, b):
# the sides cannot be negative
if (l < 0 or b < 0 ):
return - 1
# radius of the circle
r = (l * b) / ( 2 * sqrt(( pow (l, 2 ) +
pow (b, 2 ))));
return r
# Driver code if __name__ = = '__main__' :
l = 5
b = 3
print ( "{0:.5}" . format (circleradius(l, b)))
# This code is contribute # by Surendra_Gagwar |
// C# implementation of above approach using System;
class GFG
{ // Function to find the radius // of the inscribed circle static float circleradius( float l,
float b)
{ // the sides cannot be negative
if (l < 0 || b < 0)
return -1;
// radius of the circle
float r = ( float )((l * b) /
(2 * Math.Sqrt((Math.Pow(l, 2) +
Math.Pow(b, 2)))));
return r;
} // Driver code public static void Main ()
{ float l = 5, b = 3;
Console.WriteLine(circleradius(l, b));
} } // This code is contributed // by inder_verma |
<?php // PHP implementation of above approach // Function to find the radius // of the inscribed circle function circleradius( $l , $b )
{ // the sides cannot be negative
if ( $l < 0 || $b < 0)
return -1;
// radius of the circle
$r = ( $l * $b ) / (2 * sqrt((pow( $l , 2) +
pow( $b , 2))));
return $r ;
} // Driver code $l = 5;
$b = 3;
echo circleradius( $l , $b ), "\n" ;
// This code is contributed by ajit ?> |
<script> // javascript implementation of above approach // Function to find the radius // of the inscribed circle function circleradius(l , b)
{ // the sides cannot be negative
if (l < 0 || b < 0)
return -1;
// radius of the circle
var r = ((l * b) / (2 * Math.sqrt((Math.pow(l, 2) + Math.pow(b, 2)))));
return r;
} var l = 5, b = 3;
document.write(circleradius(l, b).toFixed(5)) ; // This code is contributed by shikhasingrajput </script> |
1.28624
Time complexity: O(logn) as it is using inbuilt sqrt function
Auxiliary Space: O(1) since using constant variables