判断直角三角形边长: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')

代码解析:

  1. 首先,我们获取测试样例的数量 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 是一个正整数,那么我们找到了一组满足条件的直角边 ab,输出 'Yes' 并使用 break 跳出循环。8. 如果循环结束后仍未找到满足条件的直角边,输出 'No'。

注意:

以上代码仅为一种解决方案示例。根据您的实际需求,您可能需要进行适当的修改和调整。


原文地址: https://www.cveoy.top/t/topic/Vvi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录