【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
数据范围
1≤l≤10
0≤S≤l
【我的题解】
设三角形两边为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; }
感谢浏览!❤