您的位置:首页 > 其它

poj1936(公式+二分)

2016-03-29 18:58 148 查看
参考(/article/1968942.html)

#include <iostream>
#include <bitset>
#include <vector>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iomanip>
using namespace std;
double l,n,c;
double eps = 1e-6;
int main()
{
while (cin>>l>>n>>c) {
if (l<0&&n<0&&c<0) {
break;
}
double s = (1+n*c)*l;
double ma = l/2,mi = 0;
double mid = (ma+mi)/2;
while (ma-mi>eps) {
mid = (ma+mi)/2;
double r = (4*mid*mid+l*l)/8/mid;
if (s-2*r*asin(l/2/r)>eps) {
mi = mid;
}
else
ma = mid;
}
cout<<fixed<<setprecision(3)<<mid<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: