Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับคู่จำนวนเต็มที่ไม่เป็นลบเฉพาะ (x, y) ที่ตอบสนองความไม่เท่าเทียมกัน x*x + y*y

เราได้รับจำนวนเต็มบวก N เป้าหมายคือการนับคู่ของจำนวนเต็มบวกที่ไม่เป็นลบซึ่งตรงกับความไม่เท่าเทียมกัน − x*x + y*y

เราจะเริ่มจาก x=0 ถึง x 2 ล.; N และ y=0 ถึง y 2 <น . ถ้ามี x 2 + y 2

ให้เราเข้าใจด้วยตัวอย่าง -

ป้อนข้อมูล − n=4

ผลผลิต − คู่ที่แตกต่าง=4

คำอธิบาย − คู่จะเป็น (0,0), (1,1), (0,1), (1,0) ทั้งหมดนี้ตอบสนองความไม่เท่าเทียมกัน x 2 + y 2 <4

ป้อนข้อมูล −n=2

ผลผลิต − คู่ที่แตกต่าง=3

คำอธิบาย &คู่ลบจะเป็น (0,0), (0,1), (1,0) ทั้งหมดนี้ตอบสนองความไม่เท่าเทียมกัน x 2 + y 2 <2

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • จำนวนเต็ม N เก็บจำนวนเต็มบวก

  • ฟังก์ชัน countPairs(int n) รับ n เป็นอินพุตและส่งกลับจำนวนคู่จำนวนเต็มบวกที่ไม่เป็นลบที่ชัดเจนซึ่งตอบสนองความไม่เท่าเทียมกัน −x 2 + y 2 <น.

  • count เก็บจำนวนคู่ดังกล่าว เริ่มแรก 0.

  • เริ่มจาก i=0 ถึง i2

  • ถ้า i2 + j2

  • ผลตอบแทนนับในที่สุดตามผลลัพธ์

ตัวอย่าง

#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