【A题】

 

翘课的HugeGun_

时间限制:1000ms   内存限制:65536kb

题目描述

HugeGun学姐很喜欢翘课。不幸的是,这一次她被发现了。

老师让她打扫了教室。当她把扫把靠在墙上时突然发现,由于灯光来自正上方,扫把与在墙面和地面的影子构成了一个直角三角形。

于是她想知道,对于一个直角三角形,给定斜边的边长和这个三角形的面积,如何计算直角边的边长。

睿智的你当然会帮助她。

输入

第一行一个整数nn表示数据组数

接下来nn行,每行2个整数l,Sl,S分别表示斜边长度和面积大小

输出

输出nn行

ii行为第ii组数据的答案:

若不能找到直角边长满足条件,输出hhhg

否则输出两个两位小数a,ba,b表示直角边长,其中需要满足a<=ba<=b

输入样例

3
5 6
7 8
1 2

输出样例

3.00 4.00
2.44 6.56
hhhg

数据范围

1l10

0Sl

【我的题解】

设三角形两边为a,b,斜边为l;

S=1/2*a*b;

l=a+b;

解方程得答案。

#include<stdio.h>
#include<math.h>
#include<string.h>
int main(){
    double a,b,l,s;
    double gen1,gen2;
    int n;
    scanf("%d",&n);
    while(n--){
        scanf("%lf%lf",&l,&s);
        if(l*l<4*s) {
            printf("hhhg\n");
            continue;
        }
        gen1=sqrt(l*l-4*s);
        gen2=sqrt(l*l+4*s);
        a=(gen2+gen1)/2;
        b=(gen2-gen1)/2;
        printf("%.2lf %.2lf\n",b,a);
    }
    return 0;
}

感谢浏览!❤

12-16 05:21