检查三个数字是否可以形成毕达哥拉斯三重奏?

时间:2017-03-12 20:31:31

标签: python

我需要一个程序,如果它们可以形成一个毕达哥拉斯三元组,它将允许输入和输出三个数字(例如:a ^ 2 + b ^ 2 = c ^ 2 /或/ 3 ^ 2 + 4 ^ 2 = 5 ^)。

我有一个解决方案,但我觉得它效率非常低,我想知道是否有更短,更好的解决方案?

到目前为止我的解决方案:

nums = []

for num in range(0,3):
    nums.append(int(input("Enter a number")))

if ((nums[0] ** 2) + (nums[1] ** 2) == (nums[2] ** 2)):
       // Is a pythagorean triple

等......等等。

1 个答案:

答案 0 :(得分:1)

只需排序nums。然后你只需要进行一次检查:

nums.sort()  # now nums[2] is the largest element
if ((nums[0] ** 2) + (nums[1] ** 2) == (nums[2] ** 2)):
    print "It is"  # or whatever
# no more checks needed