牛客网NOIP赛前集训营-普及组(第三场)T1精装题解
初读:乍一看,题目要求我们找出一个圆中的最大的17边形,就知道这是一道数论题,而且出在普及T1,想必思路和代码都不是很长。
我们第一步要讨论出这个17边形是否为正。由题意可得,在一个圆中,多边形如想占到最大的面积,那必然为正多边形,这样才能更圆滑的填充圆形(如果实在不知道你就可以认为普及T1难不成让你算一个非正多边形的面积?)
这时我们首先要知道:正17边形可以由圆心与顶点连线平均分为17个三角形。也就是说,我们只需求出一个三角形的面积,那么问题就解决了。
但是如何求三角形呢?
我们现在引用一个求三角形的公式:如果设一条边为a,另一条边为b,这两边的夹角是c°。那么这个三角形的面积就是:
0.5×r×r×sin(2×π÷17);
因为这个公式目前来看大多数参加此次比赛的同学都没有学过,在此不做过多解释。
下面是代码:
#include<cstdio>
#include<cmath>
using namespace std;
double PI=3.1415926535897932;//定义π
int main()
{
int r;
scanf("%d",&r);
double ans=0.5*r*r*sin(2*PI/17)*17;//计算出一个的面积后乘17
printf("%.6lf",ans);//输出结果,保留6位
return 0;
}
另外,祝大家节日快乐!