鱼缸最大盛水量

有一个长为l,宽为1,高为h的鱼缸,现在他想要在鱼缸中盛一些水。他想要知道这个鱼缸最多能够放多少水。 当然这个问题太过于简单,所以将这个鱼缸放到了一个长为L,高为H的斜坡上面,如图所示,鱼缸宽度为1的这条边紧紧靠在斜坡与地面的交界线上。
在这里插入图片描述
在不允许移动鱼缸与斜坡的情况下。鱼缸最多能够放多少水? 忽略斜坡与鱼缸因为重心的影响而导致整个鱼缸打翻的情况,你可以认为鱼缸是粘在斜坡上面的,而斜坡粘在地面上无法移动。
输入描述:
仅一行,输入四个整数h,l,H,L,(1≤h,l,H,L≤104),表示鱼缸的高度与长度,斜坡的高度与长度。
输出描述:
请输出一个实数,表示鱼缸最多能够放多少水,请输出水的体积。
示例1
输入1 2 1 2
输出
1.00000000
备注:
你的答案正确,当且仅当你输出的值与答案的相对误差小于10-6

#include <iostream>
#include<stdio.h>
#include<cmath>
#define eps 0.0000001 
using namespace std;
int main()
{
 double l,h,L,H=0;
 cin>>h>>l>>H>>L;
 double de1,de2=0;
 de1=atan(H/L);
 de2=atan(h/l);
 if(eps<=de1-de2&&de1-de2<=eps)
 {
  printf("%.8f",0.5*h*l);
 }
 else if(de1-de2>eps)
 {
  printf("%.8f",0.5*h*h*(L/H));
 }
 else if(de1-de2<-eps)
 {
  printf("%.8f",(h-l*(H/L))*l+0.5*l*l*(H/L));
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【执珪】瑕瑜·夕环玦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值