LeetCode 633. Sum of Square Numbers

来源:互联网 发布:linux中压缩文件命令 编辑:程序博客网 时间:2024/05/20 22:41

633. Sum of Square Numbers

Descripiton

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: 5Output: TrueExplanation: 1 * 1 + 2 * 2 = 5Example 2:Input: 3Output: False

Solution

  • 题意即判断一个数能够由两个数的平方和表示。
  • 我们可以枚举a、b,a从0开始,b从c的开方开始,并根据大小调节a、b的遍历规则。代码如下:
bool judgeSquareSum(int c) {    int a = 0,b = floor(sqrt(c));    while (a <= b) {        int t = a * a + b * b;        if (t == c)            return true;        else if (t > c)            b--;        else             a++;    }    return false;}
原创粉丝点击