给定一个非负整数 c
,你要判断是否存在两个整数 a
和 b
,使得 a2 + b2 = c。
示例1:
输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5
示例2:
输入: 3 输出: False
class Solution {
public:
bool judgeSquareSum(int c) {
long int a = 0, b = sqrt(c);
while (a <= b)
{
if (a*a + b*b == c)
return true;
else if (a * a + b * b < c)
++a;
else
--b;
}
return false;
}
};