输入一组勾股数 a,b,c(a≠b≠c),用分数格式输出其较小锐角的正弦值。(要求约分)。(来自洛谷)
输入格式: 一行,包含三个正整数,即勾股数 a,b,c(无大小顺序)。
输出格式: 一行,包含一个分数,即较小锐角的正弦值
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int arr[3];
cin>>arr[0]>>arr[1]>>arr[2];
sort(arr,arr+3);
int a=arr[0];
int b=arr[1];
int c=arr[2];
cout<<a/(__gcd(a,c))<<"/"<<c/(__gcd(a,c));
}
这个题目中就需要求两个数的最大公约数,可以用__gcd()函数求解最大公约数,因为是勾股数,由数学知识可知小边对小角,及最小的角所对的边也是最小的,直接比上最长的边及斜边就可以求得