题解:洛谷 P1888 三角函数
【题目来源】
【题目描述】
输入一组勾股数 \(a,b,c(a\neq b\neq c)\),用分数格式输出其较小锐角的正弦值。(要求约分。)
【输入】
一行,包含三个正整数,即勾股数 \(a,b,c\)(无大小顺序)。
【输出】
一行,包含一个分数,即较小锐角的正弦值
【输入样例】
3 5 4
【输出样例】
3/5
【算法标签】
《洛谷 P1888 三角函数》 #数学# #排序# #最大公约数,gcd#
【代码详解】
#include <bits/stdc++.h> // 包含标准库头文件(万能头文件)
#include <algorithm> // 包含算法库(使用sort函数)
using namespace std; // 使用标准命名空间
/**
* 计算两个数的最大公约数(GCD)
* @param a 第一个整数
* @param b 第二个整数
* @return 最大公约数
*/
int gcd(int a, int b)
{
return 0 == b ? a : gcd(b, a % b); // 欧几里得算法递归实现
}
/**
* 主函数 - 程序入口
* @return 程序执行状态码(0表示成功)
*/
int main()
{
int a[3]; // 定义包含3个整数的数组
cin >> a[0] >> a[1] >> a[2]; // 输入三个整数
sort(a, a + 3); // 对数组进行升序排序
// 输出最简分数形式(最小数/最大数)
// 通过除以最大公约数进行约分
cout << a[0] / gcd(a[0], a[2]) << "/" << a[2] / gcd(a[0], a[2]);
return 0; // 程序正常结束
}
【运行结果】
3 5 4
3/5
浙公网安备 33010602011771号