题目大意: 
        一个圆台型的杯子,告诉你杯子的水的体积,要求水的高度。
解题思路:
        将水的高度作为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;
}

转载于:https://www.cnblogs.com/cchun/archive/2012/08/03/2620890.html

HDU2289_Cup_二分求圆台体积相关推荐

  1. OJ实验5-8 使用函数求圆台体积OJ

    本题要求实现函数求圆台体积,定义并调用函数volume_tc(r_lower, r_upper, h)计算下底半径为r_lower.上底半径为r_upper.高度为h的圆台的体积,函数类型是doubl ...

  2. 实验5-8 使用函数求圆台体积 (10 分)

    实验5-8 使用函数求圆台体积 (10 分) 本题要求实现函数求圆台体积,定义并调用函数volume_tc(r_lower, r_upper, h)计算下底半径为r_lower.上底半径为r_uppe ...

  3. 用C语言编程函数求圆台体积,第六篇 AutoCAD二次开发技术.pdf

    第六章 ObjectARX 开发技术 1. AutoCAD二次开发概述 7. MFC对话框 2. ObjectARX简介 8. 搜索图形数据库及获取实体 3. 常用实体类和几何类 数据 4. 创建实体 ...

  4. hdu2289二分答案 圆台体积

    精度小一点就能过 #include<bits/stdc++.h> #define maxn 1000000009 #define esp 1e-9 #define PI 3.1415926 ...

  5. c语言中体积用什么字母表示,C语言中求圆柱体体积符号

    数学中求模如何定义?对比求模,C语言中计算符号"%"是否与其意义相当? 数学中模这个字被用于很多个不同领域(但是意义不同)一.C语言中的计算符号%,这个求模在数学中是指属于数论内容 ...

  6. HDU 2289 Cup(二分+圆台体积)

    Problem Description The WHU ACM Team has a big cup, with which every member drinks water. Now, we kn ...

  7. 0019 求圆台的体积

    0019 求圆台的体积 #include<bits/stdc++.h> using namespace std; double s1,s2,h; int main() {cin>&g ...

  8. 首师大附中OJ系统 0019 求圆台的体积

    求圆台的体积 这里可以快速跳转: 试题要求 试题分析 试题代码 试题要求 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 已知圆 ...

  9. 二分求幂,快速求解a的b次幂

    一个引子 如何求得a的b次幂呢,那还不简单,一个for循环就可以实现! void main(void) {int a, b;int ans = 1;cin >> a >> b; ...

最新文章

  1. 昆明大专学计算机,昆明冶金高等专科学校2020年云南省高等教育招收中等职业学校学生 (计算机类)考试大纲...
  2. MyBatis collection的两种形式——MyBatis学习笔记之九
  3. C++动态绑定及返回类型协变
  4. 如何升软件开发项目的利润
  5. 构建meteor应用程序_我构建了一个渐进式Web应用程序并将其发布在3个应用程序商店中。 这是我学到的。...
  6. 深入源码解析类Route
  7. PHP问题 —— failed to open stream: HTTP request faile
  8. 快速去除PDF打开密码和限制
  9. java 雪崩效应,七、微服务架构中的“雪崩效应”
  10. 基于SSM超越宠物医院诊治系统
  11. 计算机软件卡死,电脑运行卡或软件卡死无响应,怎么办?新生必看
  12. 本地代码上传到gitlab
  13. 二维数组与指向指针的指针
  14. php php_zip.dll,php_zip.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  15. 怎么用计算机来玩反恐精英,你第一次去网吧是为了玩什么游戏?网友:反恐精英一直到英雄联盟...
  16. 信息学奥赛一本通的一些问题
  17. Ant Design表单的使用
  18. Matlab—simulink—simscape学习指导
  19. 教你一招从谷歌商店下载应用?
  20. 电阻在电路设计中有哪些作用呢?

热门文章

  1. 日历生成---java 代码
  2. 想念你的夜,一个人流泪,两颗心体会
  3. 1619C. Wrong Addition
  4. 图片转动漫的头像软件有哪些
  5. eNSP配置静态路由,动态路由,默认路由
  6. Python之Pandas学习
  7. 尔雅 科学通史(吴国盛) 个人笔记及课后习题 2018 第二章 希腊化——罗马科学
  8. UMLet的安装及使用
  9. EXCEL单元格不能填充颜色的解决方法
  10. 数据安全与销毁案例:美国最近发生大规模数据泄露