题解:P1888 三角函数
GoldenSTEVE7 · · 题解
题意
给定直角三角形的三边,求其较小锐角的正弦值。
思路
一个角的正弦值,即在一个直角三角形中其对边比斜边的值。
那不正好吗,题目给出的直角三角形啊!那我们就确定它的斜边和它的对边即可。
怎么求呢?我们画个草图
在这里,红色角是较小角,容易看出,较小角对边是较短边。
那聪明的你一定发现了,答案输出最短边比最长边即可。
但是我们还要约分,只需要将它们都除以它们的最大公约数就行了,在 c++ 中,是提供了求两个数的最大公约数的函数了的,使用方法:
__gcd(a, b)
可以求出
那么将
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int a, b, c; cin >> a >> b >> c;
if(a > b) swap(a, b);
if(a > c) swap(a, c);
if(b > c) swap(b, c);// 排序 a, b, c
cout << a / __gcd(a, c) << "/" << c / __gcd(a, c); // 约分
return 0;
}
2025/11/30 更新:更改了错误的代码。