483 字
2 分钟
【洛谷】P1888
本文许可:CC BY 4.0
[洛谷]P1888
[原题跳转] 以下是原题:
P1888 三角函数
题目描述
输入一组勾股数 ,用分数格式输出其较小锐角的正弦值。(要求约分。)
输入格式
一行,包含三个正整数,即勾股数 (无大小顺序)。
输出格式
一行,包含一个分数,即较小锐角的正弦值
输入输出样例 #1
输入 #1
3 5 4输出 #1
3/5说明/提示
数据保证: 为正整数且 。
简而言之,就是给你三个边的参数,要你自己找斜边,并计算最小锐角的正弦值,最小锐角一定是短直角边所对的角,因此 sin 值 = 短直角边 / 斜边。 以下是代码:
import math
# 读入三个直角边a, b, c = map(int, input().split())
# 1. 斜边一定是最大的那条hypotenuse = max(a, b, c)
# 2. 剩下两条就是直角边,取其中较小的那条if a != hypotenuse and b != hypotenuse: shorter_leg = min(a, b)elif a != hypotenuse and c != hypotenuse: shorter_leg = min(a, c)else: # b、c 是直角边 shorter_leg = min(b, c)
# 3. 约分后输出:短直角边 / 斜边g = math.gcd(shorter_leg, hypotenuse)print(f"{shorter_leg // g}/{hypotenuse // g}")gcd函数原理讲解
gcd可以用if语句来进行表述,如下:
def gcd(x, y): while y: x, y = y, x % y return xif a == xie_bian: leg1,leg2=b,celif b == xie_bian: leg1,leg2=a,celse: leg1,leg2=a,b分享文章
生成精美分享图或复制链接,与更多人分享本文。
继续阅读
换条路线
从其他文章中稳定抽取
最后更新于 ,距今已过 324 天
部分内容可能已过时