P1888 三角函数
题目
描述
输入一组勾股数 )a,b,c(a!=b!=c),用分数格式输出其较小锐角的正弦值。(要求约分。)
输入格式
一行,包含三个正整数,即勾股数 a,b,c(无大小顺序)。
输出格式
一行,包含一个分数,即较小锐角的正弦值
输入输出样例
输入 | 输出 |
---|---|
3 5 4 |
3/5 |
解答
解法一
#include<iostream>
#include <algorithm>
using namespace std;
int a,b,c;
int g;
int gcd(int a,int b);
int main()
{
cin>>a>>b>>c;
if(a>b) swap(a,b); //排序
if(a>c) swap(a,c);
if(b>c) swap(b,c);
g=gcd(a,c);
cout<<a/g<<'/'<<c/g;
return 0;
}
int gcd(int a,int b) //辗转相除法 求公约数
{
int r;
while(b>0) {
r=a%b;
a=b;
b=r;
}
return a;
}
解法二
#include<iostream>
#include <algorithm>
using namespace std;
int a[3];
int gcd;
int main()
{
cin>>a[0]>>a[1]>>a[2];
sort(a,a+3); //快速排序
gcd=__gcd(a[0],a[2]); //内置函数,求两数的最大公约数
cout<<a[0]/gcd<<'/'<<a[2]/gcd;
return 0;
}
博主的个人网站:https://codespark.cn/