码迷,mamicode.com
首页 > 其他好文 > 详细

Polygon for the Angle 1096C(圆心角与圆周角)

时间:2019-05-19 12:07:59      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:圆心   scanf   using   ret   namespace   关系   ring   for   return   

只要知道圆心角与圆周角的关系即可

圆心角=2×圆周角

因为该题是正n边形,每个点到中心的距离相等,即可把这n个点放在圆周上

确定两个点一条边,还可以与剩下的n-2个点形成角度。

每个角度即是圆心角的1/2.

#include <cstdio>
#include <algorithm>
#include <iostream>
#include <map>
#include <cstring>
using namespace std;
typedef long long ll;
int edge[200];
void init(){
    memset(edge,0,sizeof(edge));
    for(int i=3;i<=360;i++){
        double newang = 180.0/(1.0*i);
        for(int j=1;j <= i-2; j++){
            double k = newang*j*1.0;
            if((int)k != k)
                continue;
            int kk = k;
            if(edge[kk] == 0)
                edge[kk] = i;
        }
    }
}
int main(){
    int t,ang;
    init();
//    for(int i=1;i<=180;i++)
//        printf("%d %d\n",i,edge[i]);
    scanf("%d",&t);
    while(t--){
        scanf("%d",&ang);
        if(edge[ang])
        printf("%d\n",edge[ang]);
        else
        printf("-1\n");
    }
    return 0;
}

 

Polygon for the Angle 1096C(圆心角与圆周角)

标签:圆心   scanf   using   ret   namespace   关系   ring   for   return   

原文地址:https://www.cnblogs.com/LLLAIH/p/10888476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!