题解:P1888 三角函数
题目の传送门。
很明显这是一道涉及到初三知识的题目,相信很多人在做这题时可能还没有学过三角函数,但是这里可以根据题目给出的样例推测一下 O^O。
前置知识
某一锐角的正弦值等于其对边长度与斜边长度的比值。
可以构成一个直角三角形三边的一组正整数叫做勾股数。
题目分析
根据题目,由于给出的是勾股数,那么根据勾股数的定义,很明显这是一个直角三角形嘛,那么排除最长的那条边(也就是斜边),那么只需要在剩下的两条边中找出最小的一条边作为被除数就行啦(除数不变的情况下,被除数越小商越小喵)。
注意了!
最后输出的结果要约分!这里推荐使用 __gcd(a,b) 来解决(求出
两个数都除以最大公约数即可完成约分。
注意哦,该函数不能用于浮点型,该函数是属于 #include<algorithm> 里的。
Code
程序仅供参考,请不要抄呀。
#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;
}
完结撒花。