您的位置:首页 > 编程语言 > Go语言

Codeforces Round #421 B. Mister B and Angle in Polygon

2017-07-20 00:23 387 查看
题目网址: Codeforces Round #421 B. Mister B and Angle in Polygon

题意分析:

题意:给出正n边形和一个角度a, 要我们找出三个顶点,使其组成的角度最接近a, 其中点的编号按照顺时针增加

思路:正多边形,我们可以知道三个点组成的角度只有N-2个,我们可以求出最小的那个角度即2 1 3,第二小的为2 1 4 ,最大的为 2 1 N

因为边在往顺时针扩大! 画下图就知道了

代码:

#include <iostream>
#include <algorithm>

using namespace std;

int main(int argc, char const *argv[])
{
int n, a;
while (~scanf("%d %d", &n, &a))
{
int ans = 3;
double deg = 180.0 * (n - 2) / n; // 最大角度数
double ang = (180 - deg) / 2; // 最小角度数
double tmp;
for (int i = 4; i <= n; i++)
{
tmp = (180.0 - deg) * (i - 2) / 2; // 公式推导可得
if (abs(ang - a) > abs(tmp - a))
{
ang = tmp;
ans = i;
}
}
printf("2 1 %d\n", ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  codeforces