标签: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