南阳理工acm449 不再爱你……

不再爱你……


描述

现在有一个圆柱形水杯,里面装满了水,在它的底部有一个小洞,通过一些简单的物理知识我们可以知道:
1、 由于重力的原因,水一定会从小洞流出来。
2、 小洞漏水的速度是和小洞那个位置的水所受到的压力大小成正比的。进而,我们可以知道,漏水的速度V和水面的的高度h成正比,简单起见,我们就直接让v=h吧(只是数值上的相等,v我们认为是单位时间漏出的水的体积,与小孔的大小无关,物理好的童鞋就不要深究了^_^)。
3、 如果你非常喜欢一个人,理论上在水漏完之前你一定不再喜欢TA了。
好吧,扯远了,我们现在的问题是,如果原来倒入了高度为h的水,从水开始流出时计为0时刻,如果在某个时间t,你不再只关心你喜欢的那个TA了,看了下水杯水面高度还有h1,那么你能计算出这个杯子的底面积s吗?

输入
第一行一个数n,表示测试数据组数。
接下来有n行数,每行数有三个数,分别表示最初倒入水面的高度h,时间t,t时刻的水面高度(所有物理量均按照国际单位制给出,且不含单位)。
输出
每组测试数据给出相应的水杯的底面积,四舍五入保留小数点后面一位数字即可,每组输出占一行。
样例输入
2
10 10 5
1 3 0.5
样例输出
14.4
4.3
来源

原创

想法:

由题意得

用s表示底面积

用f(1)$(h1,h)表示(对1*dh在h1到h上进行积分)

t*v==s*f(1)$(h1,h)

又v==h

所以t==s*f(1/h)$(h1,h)

s==t/(ln h1-ln h)

代码:

#include <stdio.h>
#include <math.h>
int main()
{
    double h,h1,t;
    int n;
    scanf("%d",&n);
    while (n--)
    {
    scanf("%lf%lf%lf",&h,&t,&h1);
    printf("%.1lf\n",t/log(h/h1));
    }
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值