题目描述
输入一组勾股数 𝑎,𝑏,𝑐(𝑎≠𝑏≠𝑐),用分数格式输出其较小锐角的正弦值。(要求约分。)
输入格式
一行,包含三个正整数,即勾股数 𝑎,𝑏,𝑐(无大小顺序)。
输出格式
一行,包含一个分数,即较小锐角的正弦值
输入输出样例
输入 #1
3 5 4
输出 #1
3/5
说明/提示
数据保证:𝑎,𝑏,𝑐 为正整数且 ∈[1,1000000000]。
因为是求较小锐角的正弦值(sin),画个图就可以知道是较短的直角边与最长的边(斜边)的比值 那就好做了
#include<bits/stdc++.h> //万能库
using namespace std;
int main()
{
int a[4]; //数组用来存储三角形三条边
for (int i=0;i<3;i++) //因为是勾股数 一共只有三个数 所以循环三次来读入三个数
{
cin>>a[i]; //把数都存在一个数组
}
sort(a,a+3); //把三个数从小到大排列 此时a[0]就是最小直角边 a[2]为斜边
cout<<a[0]/__gcd(a[0],a[2])<<'/'<<a[2]/__gcd(a[0],a[2]); //因为要约分 所以用gcd(a[0],a[2])取a[0]与a[2]的最大公约数
// a[0]/最大公约数的值与a[2]/最大公约数的比值即是约分后的结果
return 0;
}