1. 程式人生 > >C. Polygon for the Angle 幾何數學

C. Polygon for the Angle 幾何數學

main fin define std namespace include inf polygon 數學

C. Polygon for the Angle 幾何數學

題意

給出一個度數 ,問可以實現的最小的n的n邊形是多少

思路

由n邊形的外角和是180度直接就可以算出最小的角是多少 如果給出的度數是其最小角的倍數並且在這個n邊形最大度數之內,那麽就可以得到了 直接從小到大枚舉n邊形即可

#include<bits/stdc++.h>
using namespace std;
const int maxn = 3e5+5;
typedef long long ll;
#define F first
#define S second
#define pb push_back
#define pii pair<int ,int >
#define mkp make_pair
#define int double
const int inf=0x3f3f3f3f;
int32_t main(){
    int t,ang;
    int ok=0;
    scanf("%lf",&t);
    while(t--){
        ok=0;
        scanf("%lf",&ang);
        int k;
        for(int i=3;i<=1000000;i++){
          k=ang/((180-360/i)/(i-2));
          if(ang<=180-360/i&&k==int32_t(k))
            {
                ok=1;
                cout<<i<<endl;
                break;
            }
        }
        if(!ok)
        cout<<-1<<endl;
    }
    return 0;
}

C. Polygon for the Angle 幾何數學