第1关:计算圆的半径

1
2
3
4
5
6
7
8
9
10
import math

AB = float(input())
CD = float(input())

AD = AB / 2

OA = (AD**2 + CD**2) / (2 * CD)

print(round(OA, 2))

第2关:计算弓形的面积

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
'''
AB 是圆的一条弦,ABC形成一个弓形,在两行中分别输入AB和CD的长度,计算输出弓形面积的大小,结果均严格保留小数点后2位有效数字,应用三角函数和反三角函数时查阅math模块文档或利用自动补全完成。
'''
import math

AB = float(input()) # 弦长度
CD = float(input()) # 弓高度

# 半弦长
AD = AB / 2
# 半径
OA = (AD ** 2 + CD ** 2) / (2 * CD)

# 圆心角
AOB = 2 * math.asin(AD / OA)
# 弓形所在扇形的面积
sector = (AOB / (2 * math.pi)) * math.pi * OA**2

# 三角形面积
triangle = (1 / 2) * OA**2 * math.sin(AOB)

# 弓形面积
area_of_arch = sector - triangle


print(f'{area_of_arch:.2f}')