POJ1799Yeehaa!
一道几何题:
设小圆半径为r,大圆为R,有图得 :
R = r + r / sin(A);
A = 2 * PI / (n * 2) = PI / n;
联合得:
r = = R / ( 1 + ( 1 / sin( 2 * asin(1.0) /n)));
PI = 2 * asin(1.0) 可以解决精度的问题
View Code
1 #include <stdio.h> 2 #include <math.h> 3 int main(void) 4 { 5 int n,t; 6 double r1,r2; 7 scanf("%d",&n); 8 for(int i=1;i<=n;i++) 9 { 10 scanf("%lf %d",&r1,&t); 11 r2 = r1 / ( 1 + ( 1 / sin( 2 * asin(1.0) / t))); 12 printf("Scenario #%d:\n",i); 13 printf("%.3lf\n\n",r2); 14 } 15 return 0; 16 }