链接

思路:多边形的内角和为(n-2)×180°;则正多边形的内角为(n-2)×180°/n; 求出内角一半的sin值及tan值。进而求出下一次的多边形边长。正多边形的面积和为多边形的周长与边心距离乘积的一半。 边长需要转成double

#include <bits/stdc++.h>
  
using namespace std;
int T;
const double pi=acos(-1.0);
double n,a,l;
int main()
{
    scanf("%d",&T);
    while(T--){
        scanf("%lf %lf %lf",&n,&a,&l);
        double sinn=sin((n-2)*pi/(2*n));
        double tann=tan((n-2)*pi/(2*n));
        double area=n*a*a*tann/4;
        //cout<<sinn<<" "<<tann<<" "<<area<<endl;
        int ans=0;
        while(area>(double)l){
            ans++;
            a=a*sinn;
            area=n*a*a*tann/4;
        }
        cout<<ans<<endl;
    }
}