ural 1084 Goat in the Garden

 1 #include <cstdio>

 2 #include <cstring>

 3 #include <cmath>

 4 #include <algorithm>

 5 using namespace std;

 6 const double pi=acos(-1.0);

 7 

 8 int main()

 9 {

10     double a,r;

11     scanf("%lf%lf",&a,&r);

12     if(a>=r*2) printf("%.3lf\n",pi*r*r);//绳子形成的圆在正方形内

13     else if(r>=sqrt(2)*a/2) printf("%.3lf\n",a*a);//正方形在圆内

14     else

15     {

16         double a1=a/2.0/r;

17         double s1=sqrt(1-a1*a1);

18         double ji=atan(s1/a1);

19         double s=r*s1*a/2.0*4+(pi/2-ji*2)*r*r/2.0*4;

20         printf("%.3lf\n",s);

21     }

22     return 0;

23 }
View Code

 

你可能感兴趣的:(Go)