标签:style http color os io ar 代码 amp
题意:给定r,h,求图中该图形体积
思路:积分题,用总面积减去重合体积,一个卦限重合体积为∫∫Dr2?h2??????√,求得r2x?13x3,然后这个面积乘8就是总重合体积,但是注意题目中可能存在2r>h,对于这种情况实际上中间重合部分等于多一个立方体,求出该立方体高就能求出体积了,画图很容易看出高为r2?h22,算出重合体积再用总体积减去即可
代码:
#include <cstdio>
#include <cstring>
#include <cmath>
const double pi = acos(-1.0);
double r, h;
double f(double x) {
return r * r * x - 1.0 / 3 * x * x * x;
}
double solve() {
double tot = r * r * pi * h * 2;
if (r * 2 <= h) return tot - (f(r) - f(0)) * 8;
h /= 2;
double H = sqrt(r * r - h * h);
return tot - (h * h * H + f(r) - f(H)) * 8;
}
int main() {
while (~scanf("%lf%lf", &r, &h)) {
printf("%.4lf\n", solve());
}
return 0;
}UVA 1487 - Volume(积分),布布扣,bubuko.com
标签:style http color os io ar 代码 amp
原文地址:http://blog.csdn.net/accelerator_/article/details/38537067