CF:Polygon for the Angle
阿新 • • 發佈:2018-12-30
http://codeforces.com/contest/1096/problem/C
因為在一個正n邊形中選取3個點可以把這個n邊形化成i邊形,
,
已n=5,i=2可以推出一個公式
由此可以得出n邊形可以得到的幾個角度,因為最小的角度是1,所以最大的邊是360,這樣遞推一下就可以得到全部結果
AC程式碼:
#include<bits/stdc++.h>
using namespace std;
const int mod = 998244353 ;
const int maxn = 2e5 + 5;
int main(int argc, char *argv[]) {
int a[180], x;
memset(a, 0, sizeof(a));
for (int i = 3; i <= 370; i ++){
for (int j = 1; j < i - 1; j ++) {
if((180 * j) % i == 0) {
int x = (180 * j) / i;
if(a[x] == 0) a[x] = i;
}
}
}
int T;
cin >> T;
while(T --) {
int n;
cin >> n;
cout << a[n] << endl;
}
return 0;
}