Radius of the biggest possible circle inscribed in rhombus which in turn is inscribed in a rectangle
Last Updated :
27 Aug, 2022
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++
#include <bits/stdc++.h>
using namespace std;
float circleradius( float l, float b)
{
if (l < 0 || b < 0)
return -1;
float r = (l * b) / (2 * sqrt (( pow (l, 2) + pow (b, 2))));
return r;
}
int main()
{
float l = 5, b = 3;
cout << circleradius(l, b) << endl;
return 0;
}
|
Java
import java.io.*;
class GFG {
static float circleradius( float l, float b)
{
if (l < 0 || b < 0 )
return - 1 ;
float r = ( float )((l * b) / ( 2 * Math.sqrt((Math.pow(l, 2 ) + Math.pow(b, 2 )))));
return r;
}
public static void main (String[] args) {
float l = 5 , b = 3 ;
System.out.print (circleradius(l, b)) ;
}
}
|
Python3
from math import sqrt
def circleradius(l, b):
if (l < 0 or b < 0 ):
return - 1
r = (l * b) / ( 2 * sqrt(( pow (l, 2 ) +
pow (b, 2 ))));
return r
if __name__ = = '__main__' :
l = 5
b = 3
print ( "{0:.5}" . format (circleradius(l, b)))
|
C#
using System;
class GFG
{
static float circleradius( float l,
float b)
{
if (l < 0 || b < 0)
return -1;
float r = ( float )((l * b) /
(2 * Math.Sqrt((Math.Pow(l, 2) +
Math.Pow(b, 2)))));
return r;
}
public static void Main ()
{
float l = 5, b = 3;
Console.WriteLine(circleradius(l, b));
}
}
|
PHP
<?php
function circleradius( $l , $b )
{
if ( $l < 0 || $b < 0)
return -1;
$r = ( $l * $b ) / (2 * sqrt((pow( $l , 2) +
pow( $b , 2))));
return $r ;
}
$l = 5;
$b = 3;
echo circleradius( $l , $b ), "\n" ;
?>
|
Javascript
<script>
function circleradius(l , b)
{
if (l < 0 || b < 0)
return -1;
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)) ;
</script>
|
Time complexity: O(logn) as it is using inbuilt sqrt function
Auxiliary Space: O(1) since using constant variables
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...