C++ 代码中平方数之和
假设我们有一个非负整数 c,我们必须决定是否存在两个整数 a 和 b,满足 a^2 + b^2 = c。
因此,如果输入为 61,则输出为真,因为 61 = 5^2 + 6^2。
为了解决这个问题,我们将遵循以下步骤 −
定义一个函数 isPerfect(),它将接受 x,
sr := x 的平方根
当 (sr - sr 的地板) 等于 0 时,返回真
按照以下步骤执行主方法,
如果 c 等于 0,则 −
返回真
对于 i 的初始化值 := 0,当 i < c 的平方根的上限,更新 (i 加 1),执行以下操作 −
b := c - i * i
如果 isPerfect(b) 为真,则 −
返回真
返回假
示例
让我们看以下实现来更好地理解 −
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
bool isPerfect(int x){
long double sr = sqrt(x);
return ((sr - floor(sr)) == 0);
}
bool judgeSquareSum(int c) {
if (c == 0)
return true;
int b;
for (int i = 0; i < ceil(sqrt(c)); i++) {
b = c - i * i;
if (isPerfect(b))
return true;
}
return false;
}
};
main(){
Solution ob;
cout << (ob.judgeSquareSum(61));
}输入
61
输出
1
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP