题目描述:
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;
}
本文介绍了一种算法,用于判断是否存在两个整数a和b,使得它们的平方和等于给定的非负整数c。通过计算从0到sqrt(c)之间的所有可能组合来寻找答案。
385

被折叠的 条评论
为什么被折叠?



