UVA 11909 Soya Milk(简单数学三角函数计算)

UVA 11909 Soya Milk(简单数学三角函数计算)

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=229&page=show_problem&problem=3060

题意:

       有一个高h,长l,宽w的盒装牛奶.现在把它如图倾斜rad度,问你盒子里剩余牛奶的体积?

UVA 11909 Soya Milk(简单数学三角函数计算)_第1张图片

分析:

       直接自己手动在纸上画图求出当前平面的面积,再乘以w就是所求的体积.

       注意: 随着rad角度的增大,当前图形会由梯形变成一个三角形.所以需要分情况计算.

AC代码:

#include<cstdio>
#include<cmath>
using namespace std;
const double PI=acos(-1);

int main()
{
    double l,w,h,rad;
    while(scanf("%lf%lf%lf%lf",&l,&w,&h,&rad)==4)
    {
        rad=rad/180*PI;
        double ang=atan(h/l);
        double ans;
        if(rad<=ang) ans=(2*h-l*tan(rad))/2*w*l;
        else ans=h*w/2*h/tan(rad);

        printf("%.3lf mL\n",ans);
    }
    return 0;
}

你可能感兴趣的:(Algorithm,算法,ACM,计算几何)