poj 1905Expanding Rods
生活随笔
收集整理的這篇文章主要介紹了
poj 1905Expanding Rods
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 /*
2 二分 + 幾何
3 弧長L, 圓半徑R, 弧度 q, L=R*q;
4 二分: 弧度(0~PI) 或者 高度(L/2~L)
5 */
6 #include<cstdio>
7 #include<iostream>
8 #include<cmath>
9 using namespace std;
10 const double PI = acos(-1.0);
11 double L, L1, T, C, R, Q;
12
13 int main(){
14
15 while(scanf("%lf%lf%lf", &L, &T, &C) && (L!=-1 || T!=-1 || C!=-1)){
16 L1 = (1+T*C)*L;
17 double ld=0.0, rd=PI, tmp;
18 Q = (ld+rd)/2;
19 R = L/2/sin(Q);
20 while(fabs(tmp = R*2*Q-L1)>1e-8){
21 if(tmp>0) rd=Q;
22 else ld=Q;
23 Q=(ld+rd)/2;
24 R = L/2/sin(Q);
25 }
26 printf("%.3lf\n", R-sqrt(R*R - (L/2)*(L/2)));
27 }
28 return 0;
29 }
?
轉載于:https://www.cnblogs.com/hujunzheng/p/3876698.html
總結
以上是生活随笔為你收集整理的poj 1905Expanding Rods的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编译原理(简单自动词法分析器LEX)
- 下一篇: 起亚K5故障C123302Hpa短期充电