📜  可在正方形内绘制的最大半圆的面积

📅  最后修改于: 2021-05-07 04:46:35             🧑  作者: Mango

给定边a的正方形,任务是找到可以在正方形内部绘制的最大半圆的面积。
例子:

Input: a = 3
Output: 4.84865

Input: a = 4
Output: 8.61982

方法
内接于正方形的最大面积的半圆的直径平行于对角线,其半径rmax表示为:

  • 由于该图在对角线BD中是对称的,因此角度QPB = 45°
OY = r cos 45 = r/ √2
  • 因此
a = AB 
  = r + r/√2
  = r(1 + 1/√2)
  • 因此
r = a / (1 + 1/√2)
  = a*√2 / (√2 + 1)
  • 使分母合理化,我们获得
r = a*√2*(√2-1)
  • 因此
r = a*2 - a √2
  = a*(2-√2)
  • 因此,
Area of the required semicircle
         = pi * r2/2
         = 3.14*(a*(2-√2))2 / 2
  • 下面是上述方法的实现:
CPP
// C++ program to find Area of
// semicircle in a square
 
#include 
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


输出:
Area of semicircle = 8.61982
  • 参考: http //www.qbyte.org/puzzles/p153s.html