1 条题解
-
0
【深基3.习6】三角函数
解题思路
排序得到最短边 a 和斜边 c。较小锐角对最短边,其正弦为 a/c,再用最大公约数约分。
正确性说明
直角三角形中较小锐角对应较短直角边,正弦按定义为对边除斜边;分子分母同除最大公约数得到最简分数。
易错点
输入没有顺序;C++11 没有 std::gcd,使用欧几里得算法。
复杂度
最大数 M,时间 O(log M),空间 O(1)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); long long a[3]; cin >> a[0] >> a[1] >> a[2]; sort(a, a + 3); long long x = a[0], y = a[2]; while (y) { long long t = x % y; x = y; y = t; } cout << a[0] / x << "/" << a[2] / x << "\n"; return 0; }
- 1