竞赛讨论区 > 牛客网NOIP赛前集训营-普及组(第三场)T1精装题解
头像
cong666
发布于 2018-09-22 20:38
+ 关注

牛客网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;
}

另外,祝大家节日快乐!

全部评论

(3) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐