10432. Многоугольник в окружности
Правильный многоугольник вписан в
окружность. По заданному радиусу окружности и количеству сторон вычислить
площадь многоугольника.
Вход.
Каждая строка является отдельным тестом и содержит радиус окружности r (0 < r < 20000)
и количество сторон многоугольника n (2 < n < 20000).
Выход. Для каждого теста вывести в отдельной строке
площадь многоугольника.
2 2000
10 3000
геометрия
Пусть
А и В – последовательные вершины многоугольника, О – центр описанной
окружности. Поскольку многоугольник имеет n сторон, то угол AOB равен 2p / n. Площадь треугольника AOB равна ½ * AO * OB * sin ÐAOB = ½ * r2 * sin(2p/n). Площадь исходного многоугольника равна n * SAOB = ½ * n * r2 * sin(2p/n).
Для первого теста площадь
многоугольника, округленная до трех знаков после запятой, равна ½ * 2000 * 22 * sin(2p/2000) =
12.566.
Объявим константу p.
#define PI 2*acos(0.0)
Для каждой пары вычисляем площадь многоугольника по выше
приведенной формуле и выводим ее с тремя знаками после запятой.
while (scanf("%lf
%lf",&r,&n) == 2)
{
res = n * r * r * sin(2.0*PI/n)/2;
printf("%.3lf\n",res);
}