zoukankan      html  css  js  c++  java
  • SDUT1281Cup

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1281

    题意 : 一个杯子,告诉你底面半径,顶端半径,杯子高度,里边装有的热水的量,让你求杯中水的高度

    思路 : 就是一个简单的数学公式问题,也没有什么要特别注意的地方,杯子有两种形状,圆柱和圆台,圆柱的话直接用体积除以底面积即可得,而圆台的话,就这么去求肯定是求不出来的,所以就要用间接法,就是先把圆台补全,补成一个大圆锥,通过求小圆锥的高h0 = H*r/(R-r),就可以求出多补的小圆锥的体积v0 = (pi*h0*r*r)/3,数学上,这个小圆锥体积v与大圆锥的体积之比为高之比的3次方(v0+v)/v0 =((h+h0)/h0)^3,还有一个要注意的点是,若是水的体积大于杯子的体积那么求出的h将大于H,此时最大的h应该为杯子子的高度。

    #include <iostream>
    #include <stdio.h>
    #include <math.h>
    using namespace std;
    double pi = acos(-1.0);
    int main()
    {
        int t;
        double r,R,H,V,h,h0,v0;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%lf%lf%lf%lf",&r,&R,&H,&V);
            if(r==R)
            {
                h = V/(pi*r*r);
            }
            else if(r<R)
            {
                h0 = H*r/(R-r);
                v0 = (pi*h0*r*r)/3;
                h = h0*(pow((v0+V)/v0,1.0/3)-1);
            }
             if(h>H) h = H;
             printf("%.6f
    ",h);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    1163
    1162
    1154
    Qt532_QWebView做成DLL供VC/Delphi使用_Bug
    Qt532__std::numeric_limits<qint64>::min();
    Qt532_WebKit_SSL问题
    Qt532_自定义QWebView_01
    HTML解析
    Qt5_pro_02
    Qt5需要的_libstdc++6_4.7.2-5_???.deb
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3279911.html
Copyright © 2011-2022 走看看