用 C++ 統計滿足不等式 x*x + y*y < n 的不同非負整數對 (x, y) 的個數


給定一個正整數 N。目標是計算滿足不等式 x*x + y*y < N 的不同非負整數對的個數。

我們將從 x=0 到 x2 < N,以及 y=0 到 y2 < N 開始。如果任何 x2 + y2 < N,則增加配對計數。

讓我們透過示例來理解:

輸入 - n=4

輸出 - 不同的對= 4

解釋 - 對將是 (0,0), (1,1), (0,1), (1,0)。所有這些都滿足不等式 x2 + y2 < 4

輸入 - n=2

輸出 - 不同的對= 3

解釋 - 對將是 (0,0), (0,1), (1,0)。所有這些都滿足不等式 x2 + y2 < 2

下面程式中使用的方法如下:

  • 整數 N 儲存正整數。

  • 函式 countPairs(int n) 以 n 為輸入,並返回滿足不等式 x2 + y2 < n 的不同非負整數對的個數。

  • count 儲存此類對的數量,初始值為 0。

  • 從 i=0 到 i2 < n,另一個迴圈 j=0 到 j2 < n。

  • 如果 i2 + j2 < n,則 count 加 1。

  • 最後返回 count 作為結果。

示例

即時演示

#include <iostream>
using namespace std;
int countPairs(int n){
   int count = 0;
   for (int i = 0; i*i < n; i++)
      for (int j = 0; j*j < n; j++) //x*x + y*y < n
      if(i*i + j*j < n)
         count++;
   return count;
}
int main(){
   int N=4;
   cout << "Distinct Non-Negative integer pairs count: " << countPairs(N) ;
   return 0;
}

輸出

如果我們執行上述程式碼,它將生成以下輸出:

Distinct Non-Negative integer pairs count: 4

更新於:2020年8月13日

172 次檢視

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告