51nod 1629 B君的圆锥

时间:2023-03-09 18:10:16
51nod 1629 B君的圆锥
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
51nod 1629 B君的圆锥 收藏
51nod 1629 B君的圆锥 关注
B君要用一个表面积为S的圆锥将白山云包起来。
B君希望包住的白山云体积尽量大,B君想知道体积最大可以是多少。
注意圆锥的表面积包括底面和侧面。
Input
一行一个整数,表示表面积S。(1 <= S <= 10^9)
Output
一行一个实数,表示体积。
Input示例
8
Output示例
1.504506

圆锥表面积s=π*r*r + π * r*l
体积=π*r*r*h/3 r:底面圆半径
l:母线长 三分半径
#include<cstdio>
#include<cmath> const double pi=acos(-1.0); double s; double solve(double r)
{
double l=(s-pi*r*r)/(pi*r);
double h=sqrt(l*l-r*r);
return pi*r*r*h/;
} int main()
{
scanf("%lf",&s);
double l=,r=s,mid1,mid2;
int T=;
while(T--)
{
mid1=r/+l*/;
mid2=l/+r*/;
if(solve(mid1)<solve(mid2)) l=mid1;
else r=mid2;
}
printf("%.6lf",solve(mid1));
}