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

更新於: 2020 年 6 月 11 日

1 千多個瀏覽量

啟動您的 職業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.