题意:给定一个非负整数c,确定是否存在a和b使得a*a+b*b=c。

class Solution {
typedef long long LL;
public:
    bool judgeSquareSum(int c) {
        LL head = 0;
        LL tail = (LL)(sqrt(c));
        while(head <= tail){
            LL sum = head * head + tail * tail;
            if(sum == (LL)c) return true;
            else if(sum > (LL)c) --tail;
            else ++head;
        }
        return false;
    }
};

  

相关文章:

  • 2021-10-17
  • 2022-03-01
  • 2021-11-17
  • 2021-06-12
  • 2021-05-18
  • 2022-01-05
  • 2021-06-21
猜你喜欢
  • 2022-12-23
  • 2021-06-21
  • 2021-12-21
  • 2021-12-31
  • 2021-10-17
  • 2021-08-16
  • 2022-12-23
相关资源
相似解决方案