给定一个边为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
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。