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
广告