Radio del círculo más grande posible inscrito en un rombo que a su vez está inscrito en un rectángulo

Dé un rectángulo con largo l y ancho b , que inscriba un rombo, que a su vez inscriba un círculo. La tarea es encontrar el radio de este círculo.
Ejemplos: 
 

Input: l = 5, b = 3
Output: 1.28624

Input: l = 6, b = 4
Output: 1.6641

Enfoque : de la figura, está claro que las diagonales, x e y , son iguales al largo y al ancho del rectángulo. 
También el radio del círculo, r , dentro de un rombo es = xy/2√(x^2+y^2).  
Entonces, el radio del círculo en términos de l & b es = lb/2√(l^2+b^2).
A continuación se muestra la implementación del enfoque anterior
 

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>
Producción: 

1.28624

 

Complejidad de tiempo : O (logn)

Espacio Auxiliar: O(1) ya que usa variables constantes

Publicación traducida automáticamente

Artículo escrito por IshwarGupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *