其他分享
首页 > 其他分享> > CF1096C Polygon for the Angle

CF1096C Polygon for the Angle

作者:互联网

思路:

要想到正n边形中所有可能的ang为180 * k / n (1 <= k <= n - 2)。

根据n = 180 * k / ang, n是大于等于3的整数,并且n >= k + 2,计算满足条件的最小的n即可。

 

实现:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int my_ceil(int x, int y)
 4 {
 5     return (x + y - 1) / y;
 6 }
 7 int main()
 8 {
 9     int T, a;
10     cin >> T;
11     while (T--)
12     {
13         cin >> a;
14         int lb = my_ceil(2 * a, 180 - a);
15         lb = max(lb, my_ceil(a, 60));
16         int g = __gcd(180, a);
17         int ans = 180 / g;
18         a /= g;
19         if (lb > a) ans *= my_ceil(lb, a);
20         cout << ans << endl;
21     }
22     return 0;
23 }

 

标签:ang,lb,Polygon,int,ceil,180,Angle,my,CF1096C
来源: https://www.cnblogs.com/wangyiming/p/10800866.html