问题标题: 酷町堂:6721 求解

0
0
已解决
姚炫好
姚炫好
资深守护
资深守护

题目链接: 酷町堂:6721

题目描述 De**ion

有两个问题
问题一:在一个平面内,线段 DE与直线 FG 相交于点 O,已知 ∠DOF=x∘,请你在直线 FG 上找一点 P,使得 △DOP 为等腰三角形,求 ∠D 的度数。(如果答案不是整数,则保留 1 位小数)

问题二:已知一个直角三角形的两条边分别为 m,n,求第三条边的长度(保留 5 位小数)。
image.png

输入描述 Input De**ion

一行三个正整数,分别为 x,m,n。

输出描述 Output De**ion

输出两行,第一行为第一问的答案,第二行为第二问的答案。

如果有多解,请用空格隔开,且从小到大输出。

样例输入 Sample Input

60 1 1

样例输出 Sample Output

30 60 1.41421

数据范围及提示 Data Size & Hint

【第一问说明】
当点 P在点 O 左边时,形成的△DOP 为等边三角形,∠D=60∘
当点 P 在点 O右边时,形成的 △DOP 中,
∠DOP=180∘−60∘=120∘,为顶角,
∠D=(180∘−120∘)/2=30∘

【第二问说明】
第三条边为斜边,长度为sqrt(12+12)=1.41421…
【数据范围】
x<90
m≤n≤109

代码:

#include<bits/stdc++.h>
using namespace std;
long long n,m;
double x,c,d,a,b;
int main(){
    cin>>x>>n>>m;
    a=180-x;
    b=a/2;
    c=180-x;
    d=(180-c)/2;
    if(max(b,d)==b){
        if(d==(int)d){
            cout<<(int)d<<" ";
        }else{
            printf("%.1f ",d);
        }
        if(b==(int)b){
            cout<<(int)b<<"\n";
        }else{
            printf("%.1f\n",b);
        }
    }else{
        if(b==(int)b){
            cout<<(int)b<<" ";
        }else{
            printf("%.1f ",b);
        }
        if(d==(int)d){
            cout<<(int)d<<"\n";
        }else{
            printf("%.1f\n",d);
        }
    }
    printf("%.5f",sqrt(n*n+m*m));
    return 0;
}

 


0
已采纳
蔡辰夕
蔡辰夕
新手启示者
新手启示者

对不起!!!

0
0
0
0
赵近其
赵近其
新手天翼
新手天翼

抱歉,快升级了,只能水了

1

0
我要回答