zhouziyang


私信TA

用户名:Yang27

访问量:1511

签 名:

等  级
排  名 565
经  验 4172
参赛次数 0
文章发表 17
年  龄 0
在职情况 学生
学  校 南海区里水镇旗峰小学
专  业

  自我简介:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#include<bitset>
#define PI acos(-1.0)
#define INF 0x3f3f3f3f
#define LL long long
#define Pair pair<int,int>
const double EPS = 1E-10;
const int MOD = 1E9+7;
const int N = 1000000+5;
const int dx[] = {-1,1,0,0,-1,-1,1,1};
const int dy[] = {0,0,-1,1,-1,1,-1,1};
using namespace std;
double H,h,D;
double cal(double x){
    double tanA=(H-h)/x;
double d=H/tanA;
if(d<=D)
        return d-x;
d=d-D;
return D-x+d*tanA;
}
int main() {
    int t;
    scanf("%d",&t);
    while(t--){
        scanf("%lf%lf%lf",&H,&h,&D);
        double left=0,right=D;
        while(right-left>=EPS){
            double lmid=left+(right-left)/3.0;
            double rmid=right-(right-left)/3.0;
            if(cal(lmid)<cal(rmid))
                left=lmid;
            else
                right=rmid;
        }
        printf("%.3lf\n",cal(left));
    }
    return 0;
}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区