P1888 三角函数
题目描述
输入一组勾股数 a,b,c(a!= b!= c),用分数格式输出其较小锐角的正弦值。(要求约分。)
输入格式
一行,包含三个正整数,即勾股数 a,b,c(无大小顺序)。
输出格式
一行,包含一个分数,即较小锐角的正弦值
输入输出样例
输入
3 5 4
输出
3/5
#include<bits/stdc++.h>
using namespace std;
int gcd(int b,int c)
{
if(c==0) return b;
else return gcd(c,b%c);
}
// 编写求最大公因数的函数(因为要约分)
int main()
{
int b,a[3];
for(int i=0;i<3;i++)
{
cin>>a[i];
}
sort(a,a+3);
b=gcd(a[2],a[0]);
a[0]=a[0]/b;
a[2]=a[2]/b;
cout<<a[0]<<"/"<<a[2];
return 0;
}
重点:
1、题目要求约分,所以一定要求出那两条边的最大公因数然后分别除以最大公因数才是结果。
2、较小锐角的正弦值一定是最短的那条边比最长的那条边,所以可以直接用sort排序好然后最短的就是a[0],最长的就是a[2]。