1. 程式人生 > >平方數之和

平方數之和

給定一個非負整數 c ,你要判斷是否存在兩個整數 a 和 b,使得 a2 + b2 = c。

示例1:

輸入: 5
輸出: True
解釋: 1 * 1 + 2 * 2 = 5

示例2:

輸入: 3
輸出: False
思路:有點類似二分,用兩個指標分別從前和後向中間走。。。

程式碼:

class Solution {
public:
    bool judgeSquareSum(int c) {
        int j=sqrt(c);
        for(int i=0;i<=j;)
        {
            int tmp=i*i+j*j;
            if(tmp<c)
                i++;
            if(tmp>c)
                j--;
            if(tmp==c) return true;
        }
        return false;
    }
};