赞
踩
大致题意
求一个最小的正n边形使得这个图形中的某三个顶点的连线所成的角等于ang
题目解析
正多边形的一个内角的内角的大小为180*(n-2)/n 我们可以发现一个内角可以被分为n-2个大小相等的小角,我们化简公式后会发现一个小角的大小为180/n ,然后我们能算出来小角的个数为n*i/180如果小角的个数小于等于枚举出的n-2我们就可以直接输出
#include<bits/stdc++.h> using namespace std; #define int long long #define endl '\n' #define YES cout<<"YES"<<endl #define NO cout<<"NO"<<endl typedef long long ll; typedef pair<int,int> PII; const ll mod=1e9+7; const int INF=0x3f3f3f3f; const int N = 1e5+10; #define ios ios::sync_with_stdio(false), cin.tie(0), cout.tie(0) void solve() { int n; cin>>n; int f=0; for(int i=1;i<=998244353;i++) { if(n*i%180==0) { if(n*i/180<=i-2) { cout<<i<<endl; f=1; break; } } } if(!f) { cout<<-1<<endl; } } signed main() { int t; cin>>t; while(t--) { solve(); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。