标签:info data space 没有 padding test 情况 10个 math
题目链接:https://ac.nowcoder.com/acm/contest/912/B
几轮下来,我们发现回来的球越来越少,最后只剩几个9号球了。他们不爱丢9号球,因为太轻了。
在询问工作小姐姐后,得知:咱们松江保龄球俱乐部技术并不那么先进,所以后台是人工操作把球捡回来,现在球没有回来,导致球变少的原因是球卡住了,投进下水道就可能会导致现在这种情况。
校队成员心里都有数,他们每人都至少炸和过一次,只有某下水道玩家。。。
我们得知后台都是方形的盒子,大概这样的时候保龄球会卡住,图中蓝色面积S1
输入
输入共一行,由s1,s2两个正整数构成,s1和 s2为图中面积,保证s1,s2≤109且图形合法)
输出
输出一行,即保龄球的直径 D。
你的答案与标准答案误差在±0.001范围以内都算正确。
样例
input
6 25
693 2853
output
2
21.586519
思路
将s1分为三个小三角形,两个直角边的边长之和就是sqrt(4*s1+s2),斜边边长就是sqrt(s2),列一元二次方程即可
#include<bits/stdc++.h> using namespace std; int main() { int s1,s2; while(cin>>s1>>s2) { double len=sqrt(s2+4*s1); double _1=(len+sqrt(len*len-8*s1))/2; double _2=(len-sqrt(len*len-8*s1))/2; double xie=sqrt(s2); double sum=xie+_1+_2; cout<<fixed<<setprecision(6)<<(4*s1)/sum<<endl; } return 0; }
标签:info data space 没有 padding test 情况 10个 math
原文地址:https://www.cnblogs.com/Vampire6/p/10992423.html