小 \mathrm{A}A 在学数学。
他遇到了两个谜题:
在一个平面内,线段 DEDE 与直线 FGFG 相交于点 OO,已知 \angle DOF=x^{\circ}∠DOF=x
∘
,请你在直线 FGFG 上找一点 PP,使得 \triangle DOP△DOP 为等腰三角形,求 \angle D∠D 的度数。(如果答案不是整数,则保留 11 位小数)
已知一个直角三角形的两条边分别为 m,nm,n,求第三条边的长度(保留 55 位小数)。
写一个程序求出问题的答案。
一行三个正整数,分别为 x,m,nx,m,n。
输出两行,第一行为第一问的答案,第二行为第二问的答案。
如果有多解,请用空格隔开,且从小到大输出。
输入 #1复制
60 1 1
输出 #1复制
30 60
1.41421
样例说明
问题 11:
当点 PP 在点 OO 左边时,形成的 \triangle DOP△DOP 为等边三角形,\angle D=60^{\circ}∠D=60
∘
。
当点 PP 在点 OO 右边时,形成的 \triangle DOP△DOP 中,\angle DOP=180{\circ}-60{\circ}=120^{\circ}∠DOP=180
∘
−60
∘
=120
∘
,为顶角,\angle D=(180{\circ}-120{\circ})/2=30^{\circ}∠D=(180
∘
−120
∘
)/2=30
∘
。
问题 22:
第三条边为斜边,长度为 \sqrt{12+12}=\sqrt{2}=1.41421\dots
1
2
+1
2
2
=1.41421…。
x<90,m\leq n\leq 10^9x<90,m≤n≤10
9
。
出题组提示:
方法千万条,审题第一条,多解不考虑,爆零两行泪。
#include
using namespace std;
#define ld double
ld x,m,n;
void solve1()
{
vector ans;
ans.push_back(x);
ans.push_back(180-x*2);
ans.push_back((180-x)/2);
ans.push_back(x/2);
sort(ans.begin(),ans.end());
for(int i=0;i>x>>m>>n;
solve1();
solve2();
return 0;
}