Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm các cặp số nguyên không phủ định riêng biệt (x, y) thỏa mãn bất đẳng thức x * x + y * y

Chúng ta được cho một số nguyên dương N. Mục đích là đếm các cặp số nguyên dương khác biệt không âm thỏa mãn bất đẳng thức:x * x + y * y

Chúng ta sẽ bắt đầu từ x =0 đến x2

Đầu vào

n=4

Đầu ra

distinct pairs= 4

Giải thích - các cặp sẽ là (0,0), (1,1), (0,1), (1,0). Tất cả những điều này thỏa mãn bất đẳng thức x2 + y2 <4

Đầu vào

n=2

Đầu ra

distinct pairs= 3

Giải thích - các cặp sẽ là (0,0), (0,1), (1,0). Tất cả những điều này thỏa mãn bất đẳng thức x2 + y2 <2

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Số nguyên N lưu trữ số nguyên dương.

  • Hàm countPairs (int n) nhận n làm đầu vào và trả về số lượng các cặp số nguyên dương không âm riêng biệt thỏa mãn bất đẳng thức:x2 + y2

  • đếm lưu trữ số lượng các cặp như vậy, ban đầu là 0.

  • Bắt đầu từ i =0 đến i2

  • Nếu i2 + j2

  • Kết quả là số lượt trả lại cuối cùng.

Ví dụ

#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;
}

Đầu ra

Distinct Non-Negative integer pairs count: 4