不懂几何者慎入

Description
古希腊柏拉图学院的门口竖着一块牌子"不懂几何者慎入"。Julyana是一个超级大学霸,作为一个去过古希腊柏拉图学院的人(梦里经常去),她经常去帮她的学弟学妹们解决一些数学难题。这次一位高中的小学弟给Julyana提出了一个几何问题,可是Julyana太忙了,只能让你们这些从高中毕业不久的童鞋们帮他来解决了。题目如下:有一正四棱柱,给出底面(即正方形面)边长a和侧面(即矩形)边长b,让你求出底面对角线和侧面对角线的最短距离L(注:底面对角线与侧面对角线没有交点)。图如下:




Input
输入一行T(T<=500),代表样例数。
接下来T行,每行两个整数,底面边长a(0<a<=1000),侧面边长(0<b<=1000)。


Output
对于每个样例,输出一个实数L,代表最短距离(保留4位小数)。

Sample Input
1
1 1


Sample Output
0.5774


这道题就是简单的高中计算异面直线的距离。

根据公式(AB*n)/|n|为异面直线的距离,首先设异面直线的公共法向量n=(x,y,z).之后代入公式即可~~~

代码如下:

#include <iostream>
#include <stdio.h>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
    int t,a,b;
    cin >> t;
    while(t--)
    {
        cin >> a >> b;
        double p=sqrt((1.0*a*a)/(b*b)+2);
        printf("%.4lf\n",1.0*a/p);
    }
    return 0;
}


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值