版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Rem_little_fan_boy/article/details/83042588
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
B君要用一个表面积为S的圆锥将白山云包起来。
B君希望包住的白山云体积尽量大,B君想知道体积最大可以是多少。
注意圆锥的表面积包括底面和侧面。
Input
一行一个整数,表示表面积S。(1 <= S <= 10^9)
Output
一行一个实数,表示体积。
Input示例
8
Output示例
1.504506
思路:
首先我们应该了解圆锥的表面积公式:S=PI*R*L+PI*R^2; 体积公式 V=1/3*PI*R^2*H;
其中 R代表底面半径,L代表母线长度,H代表圆锥的高;
其中 H=sqrt(L^2-R^2);
L=(S-PI*R^2)/(PI*R);
则将其代入体积公式得到:V=1/3*sqrt(R^2(S^2-2*PI*R^2*S));
设t=R^2; 则 V=1/3*sqrt(t*(S^2-2*PI*S*t)) =1/3*sqrt(S^2*t-2*PI*S*t^2);
则当 t=S^3/(8*PI)时取得最大值,最大值为S*sqrt(S/(72*PI));
代码:
import java.util.Scanner;
public class Demo{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int S = sc.nextInt();
double V = S*Math.sqrt(S/(72*Math.PI));
System.out.println(V);
}
}