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++
// 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
// 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.. |
Python3
# 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#
// 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 // 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 ?> |
Javascript
<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
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!