Problem
Write a program which judges wheather given length of three side form a right triangle. Print "YES" if the given sides (integers) form a right triangle, "NO" if not so.
Input
Input consists of several data sets. In the first line, the number of data set, N is given. Then, N lines follow, each line corresponds to a data set. A data set consists of three integers separated by a single space.
Constraints
- 1 ≤ length of the side ≤ 1,000
- N ≤ 1,000
Output
For each data set, print "YES" or "NO".
Sample Input
3 4 3 5 4 3 6 8 8 8
Output for the Sample Input
YES
NO
NO
题目大意
给出 n 组长度,对于每组三个数,问能不能构成直角三角形。
题目解读
原来直角三角形是 right triangle,看来笔者英语还是不行啊。
算法
对于每组长度排个序,勾股定理判断是否直角三角形。
代码
1 n = int(input()) 2 for i in range(n): 3 s = input().split() 4 for j in range(len(s)): 5 s[j] = int(s[j]) 6 s.sort() 7 print("YES" if (pow(s[0], 2) + pow(s[1], 2) == pow(s[2], 2)) else "NO")
代码解读
注意:以下内容完全根据笔者自己对 Python 3 的理解胡说八道。
pow():指数函数(现在想想,有 ** 运算符为什么要用这个)。