Área del semicírculo más grande que se puede dibujar dentro de un cuadrado

Dado un cuadrado de lado a , la tarea es encontrar el área del semicírculo más grande que se puede dibujar dentro del cuadrado.
 

Ejemplos:  

Input: a = 3
Output: 4.84865

Input: a = 4
Output: 8.61982

Aproximación 
El semicírculo de área máxima inscrito en el cuadrado tiene su diámetro paralelo a una diagonal, y su radio rmax se da como:
 

  • Como la figura es simétrica en la diagonal BD , el ángulo QPB = 45°
OY = r cos 45 = r/ √2
  • Por eso 
a = AB 
  = r + r/√2
  = r(1 + 1/√2)
  • De este modo 
r = a / (1 + 1/√2)
  = a*√2 / (√2 + 1)
  • Racionalizando el denominador, obtenemos 
r = a*√2*(√2-1)
  • De este modo 
r = a*2 - a √2
  = a*(2-√2)
  • Por lo tanto, 
Area of the required semicircle
         = pi * r2/2
         = 3.14*(a*(2-√2))2 / 2
  • A continuación se muestra la implementación del enfoque anterior: 

CPP

// C++ program to find Area of
// semicircle in a square
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to find area of semicircle
float find_Area(float a)
{
    float R = a * (2.0 - sqrt(2));
    float area = 3.14 * R * R / 2.0;
    return area;
}
 
// Driver code
int main()
{
    // side of a square
    float a = 4;
 
    // Call Function to find
    // the area of semicircle
    cout << " Area of semicircle = "
         << find_Area(a);
 
    return 0;
}

Java

// Java program to find Area of
// semicircle in a square
class GFG {
 
    // Function to find area of semicircle
    static float find_Area(float a)
    {
        float R = a * (float)(2.0 - Math.sqrt(2));
        float area = (float)((3.14 * R * R) / 2.0);
        return area;
    }
     
    // Driver code
    public static void main (String[] args)
    {
        // side of a square
        float a = 4;
     
        // Call Function to find
        // the area of semicircle
        System.out.println(" Area of semicircle = " + find_Area(a));
    }
}
 
// This code is contributed by AnkitRai01

Python3

# Python3 program to find Area of
# semicircle in a square
from math import sqrt
 
# Function to find area of semicircle
def find_Area(a) :
 
    R = a * (2.0 - sqrt(2));
    area = 3.14 * R * R / 2.0;
     
    return area;
 
# Driver code
if __name__ == "__main__" :
 
    # side of a square
    a = 4;
 
    # Call Function to find
    # the area of semicircle
    print("Area of semicircle =",find_Area(a));
 
# This code is contributed by AnkitRai01

C#

// C# program to find Area of
// semicircle in a square
using System;
 
class GFG {
 
    // Function to find area of semicircle
    static float find_Area(float a)
    {
        float R = a * (float)(2.0 - Math.Sqrt(2));
        float area = (float)((3.14 * R * R) / 2.0);
        return area;
    }
     
    // Driver code
    public static void Main (string[] args)
    {
        // side of a square
        float a = 4;
     
        // Call Function to find
        // the area of semicircle
        Console.WriteLine(" Area of semicircle = " + find_Area(a));
    }
}
 
// This code is contributed by AnkitRai01

Javascript

<script>
 
// Javascript program to find Area of
// semicircle in a square
 
// Function to find area of semicircle
function find_Area(a)
{
    var R = a * (2.0 - Math.sqrt(2));
    var area = 3.14 * R * R / 2.0;
    return area;
}
 
// Driver code
 
// side of a square
var a = 4;
// Call Function to find
// the area of semicircle
document.write(" Area of semicircle = "
      + find_Area(a));
 
// This code is contributed by rutvik_56.
</script>
Producción: 

Area of semicircle = 8.61982

 

Complejidad de tiempo : O(1)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por spp____ 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 *