LeetCode 633.平方数之和
题目
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a^2 + b^2 = 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开始到sqrt(c)
为止,将sqrt(c - i * i)
与(int)sqrt(c - i * i)
进行比较。如果相等的话,说明可以拆成平方和的形式,如果不等的话,则不能。另外有两个特殊值,0与1要单独拿出来讨论。
代码
1 | // 使用了sqrt()函数故要加上math.h头文件 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Excelius's World!