poj 2289 二分

来源:互联网 发布:10.2怎么卸载软件 编辑:程序博客网 时间:2024/06/05 01:06
#include<iostream>    #include<cstdio>#include<cmath>using namespace std;const double e=3.14159265;int main(){int t,i;double r,R,h,v,r0,left,right,mid,v0;cin>>t;for(i=0;i<t;i++){cin>>r>>R>>h>>v;left=0,right=h;while(right-left>0.00000001){mid=(left+right)/2;r0=(h*r+mid*R-mid*r)/h;v0=e*mid*(r*r+r*r0+r0*r0)/3;if(v0<v)left=mid;else if(v0>v)right=mid;elsebreak;}printf("%.6lf\n",mid);}}

0 0
原创粉丝点击