题目描述:
Given a non-negative integer c
, your task is to decide whether there're two integers a
and b
such that a2 + b2 = c.
Example 1:
Input: 5 Output: True Explanation: 1 * 1 + 2 * 2 = 5
Example 2:
Input: 3 Output: False
int x=sqrt(c);
int start=0;
int end=x;
计算 start的平方+end的平方 num
如果 num>c,end减1
如果 num<c,start加1
直到num==c或者start>end
代码:
bool judgeSquareSum(int c) {
if (c<0)
return false;
int x=sqrt(c);
int begin=0;
int end=x;
while(begin<=end)
{
int sum=begin*begin+end*end;
if (sum==c)
return true;
if (sum>c)
end=end-1;
else if (sum<c)
begin=begin+1;
}
return false;
}