---恢复内容开始---
给一个整数 c
, 你需要判断是否存在两个整数 a
和 b
使得 a^2 + b^2 = c
.
样例
给出 n = 5
返回 true
// 1 * 1 + 2 * 2 = 5
给出 n = -5
返回 false
解:一般穷举解会超时
可用n=sqrt(num),sqrt是开根号,n等于根号num,设a*a+b*b=n*n=num,(得a与b都小于等于n) ,即b=sqrt(num-a*a)<=n
class Solution { public: /* * @param : the given number * @return: whether whether there‘re two integers */ bool checkSumOfSquareNumbers(int num) { // write your code here if(num<0) return false; if(num==0) return true; int n=sqrt(num); for(int a=0;a<=n;a++) { int b=0; if((b=sqrt(num-a*a))<=n) { if((b*b+a*a)==num) return true; } } return false; } };