Python 检查三个数字是否可以构成毕达哥拉斯三元组?
我需要一个程序,允许输入和输出三个数字,如果它们可以形成毕达哥拉斯三元组(例如:a^2+b^2=c^2/或/3^2+4^2=5^) 我有一个解决方案,但我觉得它真的很低效,我想知道是否有一个更短,更好的解决方案可用 到目前为止,我的解决方案是:Python 检查三个数字是否可以构成毕达哥拉斯三元组?,python,Python,我需要一个程序,允许输入和输出三个数字,如果它们可以形成毕达哥拉斯三元组(例如:a^2+b^2=c^2/或/3^2+4^2=5^) 我有一个解决方案,但我觉得它真的很低效,我想知道是否有一个更短,更好的解决方案可用 到目前为止,我的解决方案是: 等等。。等等。只需排序nums。那么您只需进行一次检查: nums.sort() # now nums[2] is the largest element if ((nums[0] ** 2) + (nums[1] ** 2) == (nums[2]
等等。。等等。只需排序
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
这是相当短的,因为它是。我不确定它能短多少,检查三元组就像if语句一样简单,你有一个工作解决方案,没有真正的问题,只是想改进你的解决方案。代码审查stackexchange站点可能更适合这里。您的问题是,3个输入数字的任意组合是否可以是三元组?
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