一、题意分析
没啥好说的,就是求半径为 $r$ 的圆的内接正 $n$ 边形
二、公式推导
$\because \angle AOB = \dfrac{360^{\circ}}{n}$
$\therefore \sin \angle AOB = \dfrac{j}{r} = \sin \dfrac{360^{\circ}}{n} = \sin \dfrac{2 \pi}{n}$ (计算机中的三角函数以弧度计算)
$\therefore j = \sin \dfrac{2 \pi}{n} \times r$
$\therefore S_{\triangle_{ABO}} = \dfrac{1}{2}r \times j = \dfrac{1}{2}r \times (\sin \dfrac{2 \pi}{n} \times r) = \dfrac{1}{2}r^2\sin \dfrac{2 \pi}{n}$
$\therefore S_{\odot_{O}} = nS_{\triangle_{ABO}} = \dfrac{1}{2}nr^2\sin \dfrac{2 \pi}{n}$
三、AC 程序
程序比较简单,就不写注释了
Python
1 | import math |
C++
必须吐槽一下,UVA 居然不支持 C++20,害的我没法用 std::number::pi
1 |
|