zoukankan      html  css  js  c++  java
  • HDU2289_Cup_二分求圆台体积

    题目大意: 
            一个圆台型的杯子,告诉你杯子的水的体积,要求水的高度。
    解题思路:
            将水的高度作为x,然后化简出f(x)方程,二分求x,至于圆台的体积公式:v = pi * h * (R*R+R*r+r*r) / 3; 水的高度根据直角梯形的面积公式即可求解。
    代码:

    /*
    *圆台体积公式:v = pi * h * (R*R+R*r+r*r) / 3;
    *水的体积: v = pi * sqrt(r*q) * (r*R + sqrt(r*R)*r+r*r) / 3;
    */
    #include<iostream>
    #include<cmath>
    using namespace std;
    const double pi = acos(-1.0);
    const double eps = 1.0e-10;

    double getWaterV(double R, double r, double h, double m)
    {
        double y = (r * h + m * R - r * m) / h;
        return pi * m * (y * y + y * r + r * r) / 3;
    }

    int main(void)
    {
        int cas;
        scanf("%d", &cas);
        while(cas--)
        {
            double r, R, h, v;
            scanf("%lf %lf %lf %lf", &r, &R, &h, &v);

            double left = 0, right = h, m;
            while(abs(left - right) > eps)
            {
                m = (left + right) / 2;
                if(getWaterV(R, r, h, m) < v)
                    left = m;
                else
                    right = m;
            }
            printf("%.6lf\n", m);
        }
        return 0;
    }

  • 相关阅读:
    CentOS更改yum源与更新系统
    JQ兼容各种JS库的写法
    虚拟主机
    SSH安全登录(远程管理)22端口
    Samba服务器
    VSFTP服务
    网络配置和文件服务器
    服务和进程管理(二)
    攻防世界XCTF--一个登录验证页面(第六题)
    攻防世界XCTF--一个不能按的按钮(第五题)
  • 原文地址:https://www.cnblogs.com/cchun/p/2620890.html
Copyright © 2011-2022 走看看