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