[TIOJ] 1115. 夕陽問題
題目連結:http://tioj.infor.org/problems/1115
計算幾何題OAO,我三角函數有點爛ww,不過大概就是y>0時,就是算整個原扣掉在下面那塊,也就是扇形減三角形,而y<0時,就只要算上面那塊,也就是扇形減三角形
計算幾何題OAO,我三角函數有點爛ww,不過大概就是y>0時,就是算整個原扣掉在下面那塊,也就是扇形減三角形,而y<0時,就只要算上面那塊,也就是扇形減三角形
#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1);
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);
double x,y,r,ans;
while(cin>>x>>y>>r){
double theta = acos(abs(y/r))*2;
if(y>=r)
ans=r*r*PI;
else if(y<=-r)
ans=0;
else if(y<=0)
ans = r*r*theta/2. - r*r*sin(theta)/2.;
else
ans = r*r*PI - r*r*theta/2. + r*r*sin(theta)/2.;
cout<<fixed<<setprecision(2)<<ans<<'\n';
}
return 0;
}
留言
張貼留言