Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查三个数字是否可以构成毕达哥拉斯三元组?_Python - Fatal编程技术网

Python 检查三个数字是否可以构成毕达哥拉斯三元组?

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]

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