给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。
示例 1:
输入:c = 5
输出:true
解释:1 * 1 + 2 * 2 = 5
示例 2:
输入:c = 3
输出:false
示例 3:
输入:c = 4
输出:true
示例 4:
输入:c = 2
输出:true
示例 5:
输入:c = 1
输出:true
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-of-square-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
# 两数一定在0 ~ √c之间,先求出一个数(不一定正确),求此数与c的差,若√差 和 int(√差) 相等则存在(int会将小数变为整数)
class Solution:
def judgeSquareSum(self, c: int) -> bool:
maxval = int(c ** 0.5 + 1) # 求出遍历区间最大值
for i in range(maxval):
x = i ** 2 #
y = c - x
if y ** 0.5 - int(y ** 0.5) == 0.0:
return True
return False