我需要一个程序,如果它们可以形成一个毕达哥拉斯三元组,它将允许输入和输出三个数字(例如: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
等......等等。
答案 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