跳转至

LeetCode: 633. 平方数之和

1、题目描述

给定一个非负整数 c ,你要判断是否存在两个整数 ab,使得 a2 + b2 = c。

示例1:

输入: 5
输出: True
解释: 1 * 1 + 2 * 2 = 5

示例2:

输入: 3
输出: False

2、解题思路

bool judgeSquareSum(int c) {

    int left = 0;
    int right = c ;

    double temp;
    for (int i = left; i <= right; i++) {
        temp = sqrt(c - pow(i, 2));
        if (temp == (int) temp) {
            if (c - pow(i, 2) == pow(temp,2)) {
                return true;
            }
        } else {
            right = c - pow(i, 2);
        }
    }

    return false;


}