专栏文章

题解:P1888 三角函数

P1888题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mipbh1dn
此快照首次捕获于
2025/12/03 09:16
3 个月前
此快照最后确认于
2025/12/03 09:16
3 个月前
查看原文
很明显这是一道涉及到初三知识的题目,相信很多人在做这题时可能还没有学过三角函数,但是这里可以根据题目给出的样例推测一下 O^O。

前置知识

某一锐角的正弦值等于其对边长度与斜边长度的比值。
可以构成一个直角三角形三边的一组正整数叫做勾股数。

题目分析

根据题目,由于给出的是勾股数,那么根据勾股数的定义,很明显这是一个直角三角形嘛,那么排除最长的那条边(也就是斜边),那么只需要在剩下的两条边中找出最小的一条边作为被除数就行啦(除数不变的情况下,被除数越小商越小喵)。
注意了!
最后输出的结果要约分!这里推荐使用 __gcd(a,b) 来解决(求出 aabb 的最大公约数)。
两个数都除以最大公约数即可完成约分。
注意哦,该函数不能用于浮点型,该函数是属于 #include<algorithm> 里的。

Code

程序仅供参考,请不要抄呀。
CPP
#include <iostream>
#include <algorithm>
using namespace std;

int main()
{

    int a,b,c,x;//int 类型即可
    cin>>a>>b>>c;//输入
    x=__gcd(min(a,min(b,c)),max(a,max(b,c)));//__gcd求最大公因数
    //找出最长边(斜边)及最短边(满足正弦值最小) 
	cout<<min(a,min(b,c))/x<<"/"<<max(a,max(b,c))/x<<endl;//约分 
	return 0;
}
完结撒花。

评论

0 条评论,欢迎与作者交流。

正在加载评论...