ZOJ3203 Light Bulb

 1 #include <cmath>
 2 #include <cstdio>
 3 using namespace std;
 4 
 5 const double EPS=1e-8;
 6 double H,h,D;
 7 
 8 double Calc(double x)
 9 {
10     return (h*D-H*x)/(D-x)+x;
11 }
12 
13 int main()
14 {
15     int T;
16     scanf("%d",&T);
17     while(T--)
18     {    
19         scanf("%lf%lf%lf",&H,&h,&D);
20         double left=0,right=h*D/H;
21 
22         while(right-left>=EPS)
23         {
24             double mid=(right+left)/2;
25             double midmid=(mid+right)/2;
26 
27             double l1=Calc(mid);
28             double l2=Calc(midmid);
29             if(l1>l2)
30                 right=midmid;
31             else
32                 left=mid;
33         }
34         printf("%.3lf\n",Calc(left));
35     }
36     return 0;
37 }

posted on 2010-08-29 11:21 ZAKIR 阅读(130) 评论(0)  编辑 收藏 引用 所属分类: ZOJ


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿

随笔档案

文章分类

文章档案

大牛们

搜索

最新评论

阅读排行榜

评论排行榜