签到题
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
2
-
描述
-
hrw最近看到一个有趣的几何题,题目描述是这样的:一个大圆盘里面放入许多小圆盘,每个小圆盘必须接触大圆盘边缘且与其他小圆盘不能相交,但它们可以互相接触,每个小圆盘具有相同的半径,求此条件下能否放入n个小圆盘。
-
输入
- Multiple sets of test data,The first line contains three integers n, R and r (1 ≤ n ≤ 100, 1 ≤ r, R ≤ 1000) — the number of plates, the radius of the table and the plates' radius.and you can think the pi is 3.1415927 输出
- Print "YES" (without the quotes) if it is possible to place n plates on the table by the rules given above. If it is impossible, print "NO".Remember, that each plate must touch the edge of the table. 样例输入
-
4 10 4 2 10 10
样例输出
-
YES NO
-
#include<stdio.h> #include<iostream> #include<math.h> using namespace std; int main() { int n,a,b; while(scanf("%d%d%d",&n,&a,&b)!=-1) { if(n<=2) { if(n*b<=a) { printf("YES\n"); } else { printf("NO\n"); } } else { double we,ni; we=asin((b*1.0)/(a-b));//这里求出的是实际度数和最大预计度数 ni=3.1415927/n; if(ni>=we) { printf("YES\n"); } else { printf("NO\n"); } } } }