Codeforces 630P

xiaoxiao2021-02-28  67

题目链接

【题意】

给定一个圆并给出n,r,求圆内接正n角星的面积,其中5<n<10^9并且n是素数,1<r<10^9

【分析】

以样例为例,首先很容易的找到圆心, 然后设图中角2=p,易得角1=p/2,而且有p=2*PI/n(圆周角是圆心角的一半)并且显然正n角星的面积是图中蓝色四边形的n倍,已知角1角2,而又有对称的两个角,根据正弦定理可以求出小蓝线的长度,然后可以得出黑色短线的长度,最后可以求得蓝色四边形面积,然后可以求得正n角星的面积

【Code】

#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> typedef long long LL; const double PI = acos(-1.0); using namespace std; int main() { int n; double R; scanf("%d %lf",&n,&R); double p = 2*PI/n; double q = (2*PI-p-p/2)/2; double x = (R*sin(p/4))/sin(q); double s = n*R*x*sin(p/2); printf("%.12f\n",s); return 0; }
转载请注明原文地址: https://www.6miu.com/read-52854.html

最新回复(0)