Lazy Physics Cat
Physics cat likes to draw shapes and figure out their area. He starts by drawing a circle. Then inside the circle, he draws the triangle X, Y, Z - where Y is the center point of the circle, and X and Z touch the circumference of the circle. Please note that points X and Yalways have the same x-coordinate.
Given L (the distance between Points X and Y) and A (the angle XYZ in degrees); help physics cat find the shaded area between the right side of the triangle and the circumference of the circle. And when we say help, we mean do all the work for him.
Input
The first line of input is T – the number of test cases.
The first line of each test case is integers L and A (1 ≤ L ≤ 1000) (1 ≤ A ≤ 180).
Output
For each test case, output on a line the area of the shaded region rounded to 6 decimal places.
Example
input
Copy
3
1 90
2 180
10 30
output
Copy
0.285398
6.283185
1.179939
题意:在圆里画三角,Y是原点,X,Z在圆上,A即圆半径,L三角形的角度,求右侧圆减三角形的面积
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <math.h>
#define PI acos(-1.0)
using namespace std;
int main()
{
int i,j,k;
double ans,s,m,n;
scanf("%d",&k);
for(i=0;i<k;i++)
{
scanf("%lf%lf",&m,&n);
s=(PI*m*m*n/360.0);
ans=m*m*sin(n/180*PI)/2.0;
ans=s-ans;
printf("%lf\n",ans);
}
return 0;
}