Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
没道理呀,也是用二分 ,超时是不是 有那个测试数据超时呢?帮忙分析一下 #include<stdio.h> #include<math.h> float f(float x,float y,float c,float L) { return (sqrt((y*y-L*L)*(x*x-L*L)))/(sqrt(x*x-L*L)+sqrt(y*y-L*L))-c; } int main() { float x,y,c; float down,min,up,temp,L,temp1; while(EOF!=scanf("%f %f %f",&x,&y,&c)){ down=0.0; if(x<y) up=x; else up=y; min=(down+up)/2; L=min; temp=f(x,y,c,L); temp1=temp; if(temp1<0) temp1=-temp1; while(temp1>0.0001){ if(temp<0) up=min; if(temp>0) down=min; min=(down+up)/2; L=min; temp=f(x,y,c,L); temp1=temp; if(temp1<0) temp1=-temp1; } printf("%.3f\n",L); } return 0; } /* 30 40 10 12.619429 8.163332 3 10 10 3 10 10 1 */ Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator