[swustoj 771] 奶牛农场

奶牛农场
Description

将军有一个用栅栏围成的矩形农场和一只奶牛,在农场的一个角落放有一只矩形的箱子,有一天将军要出门,他就把奶牛用一根绳子套牢,然后将绳子的另一端绑到了那个箱子不靠栅栏的角上,现在给定箱子的长和宽,绳子的长度,你的问题是计算奶牛能够到达的面积。

 
Input

有多组测试数据。 每一组数据为一行,三个整数,L(0<=L<=500),M,N(1<=M,N<=500),分别表示绳子的长度,箱子的两边长度。假设农场无限大。

 
Output

对于每一组测试数据,输出奶牛能够到达的面积,保留两位小数。

Sample Input

1 1 1

Sample Output

2.36

晕、最开始理解错了、

简单题、画下图就知道了。

对于其中一边,分两种情况讨论

(1) 

(2) 

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
#define PI acos(-1.0)

double r,a,b;
double getArea(double n) 
{
    if(r<=n){
        double angel=0.75*PI;
        return r*r*angel/2;
    }
    else{
        double angel1=acos(n/r);
        double angel2=0.75*PI-angel1;
        return r*r*angel2/2+0.5*n*r*sin(angel1);
    }
}
int main()
{
    while(scanf("%lf%lf%lf",&r,&a,&b)!=EOF)
    {
        printf("%.2f\n",getArea(a)+getArea(b));
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/hate13/p/4598370.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值