刷题-力扣-623. 平方数之和

633. 平方数之和

题目链接

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-of-square-numbers/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题目描述

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

示例 1:

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

示例 2:

输入:c = 3
输出:false

示例 3:

输入:c = 4
输出:true

示例 4:

输入:c = 2
输出:true

示例 5:

输入:c = 1
输出:true

提示:

  • 0 <= c <= 2^31 - 1

题目分析

  1. 根据题目描述判断一个数是否是两个数的额平方和
  2. 暴力求解,先选取a的值,再判断c-a^2的开方是否是整数

代码

class Solution {
public:
    bool judgeSquareSum(int c) {
        for (long int a = 0; a * a <= c; ++a) {
            double b = sqrt(c - a * a);
            if (b == (long int)b) return true;
        }
        return false;
    }
};
原文地址:https://www.cnblogs.com/HanYG/p/14713567.html