首页 > 代码库 > poj 1905 Expanding Rods 二分
poj 1905 Expanding Rods 二分
1 /** 2 题解晚上写 3 **/ 4 #include <iostream> 5 #include <math.h> 6 #include <algorithm> 7 #include <cstdio> 8 using namespace std; 9 const double esp = 1e-5; 10 int main() 11 { 12 double l,n,c; 13 while(cin>>l>>n>>c){ 14 if(l<0&&n<0&&c<0) 15 break; 16 double ll; 17 ll = (1+n*c)*l; 18 double low,high; 19 low =0; 20 high= l/2; 21 double r,mid; 22 while(high-low>esp){ 23 mid = (high+low)/2.0; 24 r = ((mid*mid*4)+(l*l))/(8*mid); 25 if(2*r*asin(l/(2*r))<ll) 26 low = mid; 27 else 28 high = mid; 29 } 30 printf("%.3lf\n",high); 31 } 32 return 0; 33 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。