UVA - 10286
题目介绍:
You are asked to place the largest possible square inside a
regular pentagon (whose internal angles are same and all the
sides are same in length). You are given the information that
one vertex of the square will be coincident with a vertex of
the square as shown in the figure below. You will have to find
the length of a side of the square when a side of the regular
pentagon is given.
大意:
在给定边长的五边形中找出边长最长的四边形,给出最大变长。
分析:
感觉上是当四边形最上的点和五边形最上面点重合时最大,也有可能是当四边形最下的点在五边形底边中点。用程序判断一下哪个大。
计五边形边长为X,四边形边长为Y。
前一个情况添加辅助线可以得到X和Y分别对应63°角和108°角,后一个X/2和Y分别对应27°角和108°角。
用正弦定理即可求出长度。
AC代码:
#include<iostream>
#include<cmath>
using namespace std;
const double PI=acos(-1);
int main(){
double n;
while(scanf("%lf",&n)==1){
double ans=max(n*sin(0.6*PI)/sin(63.0/180.0*PI),n*sin(0.6*PI)/(2.0*sin(0.15*PI)));
printf("%.10lf\n",ans);
}
return 0;
}