Thinking-Bear magic

链接:https://www.nowcoder.com/acm/contest/163/D
来源:牛客网
 

题目描述

In order to become a magical girl, Thinking-Bear are learning magic circle.
He first drew a regular polygon of N sides, and the length of each side is a.
He want to get a regular polygon of N sides, and the polygon area is no more than L.
He doesn't want to draw a new regular polygon as it takes too much effort.
So he think a good idea, connect the midpoint of each edge and get a new regular polygon of N sides.
How many operations does it need to get the polygon he want?

输入描述:

The first line of the input is T(1≤ T ≤ 100), which stands for the number of test cases you need to solve.
The first line of each case contains three space-separated integers N, a and L (3 ≤ N ≤ 10, 1 ≤ a ≤ 100, 1 ≤ L ≤ 1000).

输出描述:

For each test case, output a single integer.

示例1

输入

复制

1
4 2 3

输出

复制

1
#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
#define rep(i,a,b) for(int i=a;i<b;i++)

const double pi=acos(-1.0);

//日常忘记开根号
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        double n,L,S;
        scanf("%lf %lf %lf",&n,&L,&S);
        double th1=2.0*pi/n,th2=pi-th1;
        double IS=n*0.5*sin(th1)*L*L/(2.0*(1.0-cos(th1)));
        int ans=0;
        while(IS-S>=0){
            IS-=(n*1.0/8.0*L*L*sin(th2));
            L=sqrt(L*L/2.0*(1.0-cos(th2)));
            ans++;
        }
        printf("%d\n",ans);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36424540/article/details/81477331