题目:给出圆内接正多边形的面积,计算它与内切圆和外接圆的面积差。
分析:简单题、计算几何。设外接圆和内切圆半径为R和r,则 a/n = RsinA*RcosA = 0.5(r^2)sin(2A),r = RcosA,A = 180/n。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
double n,a;
int t = 1;
while ( scanf("%lf%lf",&n,&a) && n > 2 ) {
double r1 = sqrt(2.0*a/n/sin(2.0*acos(-1.0)/n));
double r2 = r1*cos(acos(-1.0)/n);
double a1 = acos(-1.0)*r1*r1-a;
double a2 = a-acos(-1.0)*r2*r2;
printf("Case %d: %.5lf %.5lf\n",t ++,a1,a2);
}
return 0;
}