本文共 583 字,大约阅读时间需要 1 分钟。
/* 二分 + 几何 弧长L, 圆半径R, 弧度 q, L=R*q; 二分: 弧度(0~PI) 或者 高度(L/2~L) */#include#include #include using namespace std;const double PI = acos(-1.0);double L, L1, T, C, R, Q;int main(){ while(scanf("%lf%lf%lf", &L, &T, &C) && (L!=-1 || T!=-1 || C!=-1)){ L1 = (1+T*C)*L; double ld=0.0, rd=PI, tmp; Q = (ld+rd)/2; R = L/2/sin(Q); while(fabs(tmp = R*2*Q-L1)>1e-8){ if(tmp>0) rd=Q; else ld=Q; Q=(ld+rd)/2; R = L/2/sin(Q); } printf("%.3lf\n", R-sqrt(R*R - (L/2)*(L/2))); } return 0;}
转载地址:http://kehca.baihongyu.com/