CodeForces 1096C Polygon for the Angle

题意:给一个角度(整数),问你最小的正几边形的三个点可以连出来。
思路:
1.n边形内角和 180*(n-2);
2.正n边形内角 180*(n-2)/n;(即该题n变形最大的角)
3.正n边形三个点最小的角度为180*(n-2)/(n*(n-2))=(180/n);且任意三点的角度是该角度的倍数;
所以从i=3开始枚举判断给出的角度是否为(180/i)的倍数。并且小于180*(i-2)/i;

#include<bits/stdc++.h>
using namespace std;

int main()
{
//    freopen("in.txt", "r", stdin);
    int T; cin >> T;
    while(T--)
    {
        int a; cin >> a;
        for(int i = 3; i <= 360; i++)
            if(a * i % 180 == 0 && a * i / 180 < i - 1)
            {
                cout << i << endl;
                break;
            }
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值