专栏文章
题解:P1888 三角函数
P1888题解参与者 12已保存评论 13
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 13 条
- 当前快照
- 1 份
- 快照标识符
- @mipbhoq4
- 此快照首次捕获于
- 2025/12/03 09:17 3 个月前
- 此快照最后确认于
- 2025/12/03 09:17 3 个月前
题意
给定直角三角形的三边,求其较小锐角的正弦值。
思路
一个角的正弦值,即在一个直角三角形中其对边比斜边的值。
那不正好吗,题目给出的直角三角形啊!那我们就确定它的斜边和它的对边即可。
怎么求呢?我们画个草图

在这里,红色角是较小角,容易看出,较小角对边是较短边。
那聪明的你一定发现了,答案输出最短边比最长边即可。
但是我们还要约分,只需要将它们都除以它们的最大公约数就行了,在
CPPc++ 中,是提供了求两个数的最大公约数的函数了的,使用方法:__gcd(a, b)
可以求出 ,也就是它们的最大公约数。
那么将 分别除以它们最大公约数即可。
代码
CPP#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 更新:更改了错误的代码。相关推荐
评论
共 13 条评论,欢迎与作者交流。
正在加载评论...