题目链接https://www.nowcoder.com/acm/contest/163/D
输入n代表n边形,a为边长,l
所以他想一个好主意,连接每条边的中点,并得到一个新的N的正多边形。
想要一个正多边形(N),和
多边形面积不超过L。
链接:https://www.nowcoder.com/acm/contest/163/D
来源:牛客网
为了成为一个神奇的女孩,Thinking-Bear正在学习魔法阵。
他第一次画了一个正多边形(N),和每条边的长度。
他想要一个正多边形(N),和多边形面积不超过L。
他不想画一个新的正多边形,因为它需要太多的努力。
所以他想一个好主意,连接每条边的中点,并得到一个新的N的正多边形。
有多少业务需要得到他想要的多边形吗?
输入描述:
输入的第一行是T(1≤T≤100),代表测试用例的数量你需要解决。
每个案例的第一行包含三个空格分隔的整数N,和L(3≤N≤10 1≤≤100,1 L≤≤1000)。
输出描述:
为每个测试用例,输出一个整数。
示例1
输入
复制
1
4 2 3
输出
复制
1
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<math.h>
#define PI 3.1415926535897932384626
using namespace std;
const int maxn=100;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
double a,l,s,r,an;
cin>>n>>a>>l;
int cnt=0;
r=a/(2*sin(PI/n));//外接圆半径
//cout<<r<<endl;
s=0.5*n*r*a*cos(PI/n);//面积
//cout<<s<<endl;
while(s>l)
{
a=a*cos(PI/n);//新正n边形的边长
r=a/(2*sin(PI/n));//外接圆半径
s=0.5*n*r*a*cos(PI/n);
cnt++;
}
cout<<cnt<<endl;
}
return 0;
}