判断直角三角形边长:Python代码实现
判断直角三角形边长:Python代码实现
问题描述:
只考虑边长为整数的直角三角形。给定一个直角三角形的斜边长度c,能否找出两条直角边a、b,使得a、b为正整数?
输入格式:
第一行为T,代表T组测试样例。接下来T行,每行一个正整数c,代表斜边长度(T<=100,c<=50000)。
输出格式:
一行,如果能找到a、b都为正整数,则输出Yes,否则输出No。(注意区分大小写)
解决方案:
以下是使用 Python 代码实现的算法:pythonimport math
获取测试样例数量T = int(input())
处理每组测试样例for _ in range(T): # 获取斜边长度 c = int(input())
# 尝试所有可能的直角边组合 for i in range(1, c): # 计算剩余直角边 b = math.sqrt(c**2 - i**2)
# 判断 b 是否为正整数 if b.is_integer() and b > 0: print('Yes') break else: print('No')
代码解析:
- 首先,我们获取测试样例的数量
T。2. 然后,我们使用一个循环来处理每个测试样例。3. 在每个测试样例中,我们首先获取斜边长度c。4. 接下来,我们使用一个循环来尝试所有可能的直角边组合。循环变量i从 1 遍历到c - 1,代表其中一条直角边a的长度。5. 在每次循环中,我们使用勾股定理计算另一条直角边b的长度:b = sqrt(c^2 - i^2)。6. 然后,我们使用b.is_integer()判断b是否为整数,并使用b > 0判断b是否为正数。7. 如果b是一个正整数,那么我们找到了一组满足条件的直角边a和b,输出 'Yes' 并使用break跳出循环。8. 如果循环结束后仍未找到满足条件的直角边,输出 'No'。
注意:
以上代码仅为一种解决方案示例。根据您的实际需求,您可能需要进行适当的修改和调整。
原文地址: https://www.cveoy.top/t/topic/Vvi 著作权归作者所有。请勿转载和采集!