大意:给定椭球的a,b,h并且b=c;其中椭球的公式为x^2/a^2+y^2/b^2+z^2/b^2=1,求沿着球心高出为h的地方切球分的两部分的最大一部分的体积。
思路:S椭圆=PI*a*b;。
#include<map>
#include<queue>
#include<cmath>
#include<cstdio>
#include<stack>
#include<iostream>
#include<cstring>
#include<algorithm>
#define LL long long
#define inf 0x3f3f3f3f
#define eps 1e-8
#define ls l,mid,rt<<1
#define rs mid+1,r,rt<<1|1
const double PI=acos(-1.0);
using namespace std;
int main(){
int n,m,i,j,k,a,b,h;
scanf("%d",&k);
for(int zu = 1;zu <= k;++ zu){
scanf("%d%d%d",&a,&b,&h);
if(h >= b){
printf("Case %d: %.3lf\n",zu,PI*a*b*b*4.0/3.0 );
continue;
}
printf("Case %d: %.3lf\n",zu, PI*a*b*b*2.0/3.0 + PI*a*b*(h-h*h*h/(3.0*b*b)) );
}
return 0;
}
本文介绍了一种计算椭球特定高度切面以上最大体积部分的方法。通过给出的椭球参数a、b以及高度h,利用数学公式计算出体积,并提供了一个C++实现示例。
614

被折叠的 条评论
为什么被折叠?



